Pattern to match date in YYYY-MM-DD format on Linux machine


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Pattern to match date in YYYY-MM-DD format on Linux machine
# 8  
Old 01-06-2018
Hi Don,

I agree complete error is below only which you have pasted.
My intention was not to hide anything from anyone.
Just to keep it short and simple i pasted the below

Code:
Error 131: Incorrect DocumentDate pattern Field position 14, Linenumber:2

and below is my complete code, to keep is short just removed other validation conditions
Code:
awk -F"|" 'NR>1{
if (length($1)>25) {print "Error 101: Source Identifier exceeds the allowed limit","Field position 1, Linenumber:"NR,$0}
if ($1 ~ /[A-Za-z]+[0-9]+/ || $1 ~ /^[0-9]*$/) {print "Error 102: Source Identifier contains String other than characters","Field position 1, Linenumber:"NR,$0}
if (length($2)>50) {print "Error 103: Source File name excceds the allowed limit","Field position 2, Linenumber:"NR,$0}
if (length($14)>10) {print "Error 130: DccumentDate pattern exceeds allowed limit", "Linenumber:"NR,$0}
if ($14 !~ /^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$/) {print "Error 131: Incorrect DocumentDate pattern", "Field position 14, Linenumber:"NR,$0}
if ($11 ~ /^CAN$/ && $13==$15) {print "Error 208: column 13 and column 15 matches ","Field position 13, Linenumber:"NR,$0}
if ($3 ~ /[^A-Za-z0-9]+/ || $3 != "") {print "Error 209: GLACode contains string contain space","Field position 3, Linenumber:"NR,$0}
#{printf var1}
printf("\n")
}' /Scripts/gt/test1.txt > aj.txt

# 9  
Old 01-06-2018
I will stand by my original statement that to get the output you showed us before, the only way to get that output was for line #2 in your input file to be a blank line. That is why it is crucial that you show us the actual output produced by your code instead of an abridged form that hides whatever problem you may actually be encountering.

With the code you showed us in post #1 in this thread:
Code:
if ($14 !~ /^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/) {print "Error 131: Incorrect DocumentDate pattern", "Field position 14, Linenumber:"NR,$0}

and with the code you showed us in post #8:
Code:
if ($14 !~ /^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$/) {print "Error 131: Incorrect DocumentDate pattern", "Field position 14, Linenumber:"NR,$0}

and with a simpler, equivalent ERE:
Code:
if ($14 !~ /^[0-9]{4}-(0[1-9]|1[0-2])-([0-2][0-9]|3[0-1])$/) {print "Error 131: Incorrect DocumentDate pattern", "Field position 14, Linenumber:"NR,$0}

I do not get any output from any of these three if statements from a file where line 2 in that file is the text you showed us in post #6.

My best guess would be that there is a non-printing character or some other character followed by a <backspace> character that hides the fact that there are other characters present in that field that do not match the ERE in your test. To verify this, show us the output from the command:
Code:
od -bc aj.txt

where aj.txt is a file containing the output from running the script you showed us in post #8 containing the diagnostic message I showed you in post #7.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Date format YYYY/MM/DD to DD/MM/YYYY

I am getting output of YYYY-MM-DD and want to change this to DD/MM/YYYY. When am running the query in 'Todd' to_date(column_name,'DD/MM/YYYY') am getting the required o/p of DD/MM/YYYY, But when am executing the same query(Netezza) in linux server(bash) am getting the output of YYYY-MM-DD file... (3 Replies)
Discussion started by: Roozo
3 Replies

2. Shell Programming and Scripting

How to get last 12 month date in YYYY.MM format?

I need the date format in YYYY.MM format and I am able to get current month date as well as previous month date with below command PM=`date +'%Y.%m' -d 'last month'` CM=`date +'%Y.%m' -d 'now'` but I need to get YYYY.MM date format for previous 12 months so could you please help me how I get... (2 Replies)
Discussion started by: Amit Joshi
2 Replies

3. Shell Programming and Scripting

Date Format MM/DD/YYYY

I am changing epoch times to dates. I was able to do the following: echo "$varx" | gawk '{print strftime("%c", $0)}' Mon Dec 31 16:26:40 2012 This changes the epoch date (which is what varx is) into localtime. However, my problem is that I only want 12/31/2012 and not the Mon Dec 31... (2 Replies)
Discussion started by: newbie2010
2 Replies

4. Shell Programming and Scripting

Convert any date format into yyyy/mm/dd

How can I convert any user inputted date into yyyy/mm/dd ? For example user can input date one of the following 20120121 , 2012-01-21 ,01/21/2012,01/21/2012 etc But I need to convert any of the date entered by user into yyyy/mm/dd (2012/01/2012). Any suggestion. Thanks in advance this is... (1 Reply)
Discussion started by: ZeroHedge
1 Replies

5. Shell Programming and Scripting

need code for date which is in yyyy-mm-dd format

Hi, I am having one log files. contains som data according to date. And it is going to append .Eg:abc.log contains below data 2011-10-19 abjhgj 2011-10-19 gjhgjgj 2011-10-20 hhhjh 2011-10-20 hhhhjj 2011-10-21 gg . . . 2011-11-24 yyy from log files i want catch only... (2 Replies)
Discussion started by: aish11
2 Replies

6. Shell Programming and Scripting

Need date in the format [mm dd yyyy hh AM/PM]

could you please help be on the below code .. Requirement is when i pass the parameter(for below 2) i should get current time -2 hours in the format :wall:.. cur_dt=`$ICEBIN/sqsh -S$DSQUERY -U $BATCHID -P $PASSWD -h -C"select getdate()" | sed '2d'` pr_dt="`$ICEBIN/sqsh -S$DSQUERY -U $BATCHID... (2 Replies)
Discussion started by: karthicss
2 Replies

7. Shell Programming and Scripting

change date format from yyyy/mm/dd to dd/mm/yyyy

(Attention: Green PHP newbie !) I have an online inquiry form, delivering a date in the form yyyy/mm/dd to my feedback form. If the content passes several checks, the form sends an e-mail to me. All works fine. I just would like to receive the date in the form dd/mm/yyyy. I tried with some code,... (6 Replies)
Discussion started by: keyboarder
6 Replies

8. Shell Programming and Scripting

date and time in mm/dd/yyyy hh:mm format

Frens, I have a logfile which has got manier things in it and somewer in that file i have a date in mm/dd/yyyy hh:mm format.... I just need to get the date and time nothing else.... i have searched in this forum for it but got only date in mm-dd-yyyy format.. but i need to search for... (10 Replies)
Discussion started by: smarty86
10 Replies

9. UNIX for Dummies Questions & Answers

Format date from MM/DD/YYYY to YYYYMMDD

I have a file with some date columns in MM/DD/YYYY format: SMPBR|DUP-DO NOT USE|NEW YORK||16105|BA5270715|6/6/2007 |MWERNER|109||||JOHN||SMITH|MD|72211118||||||74559|21 WILMINGTON RD||D|11/6/2003|SL# MD CONTACT-LIZ RICHARDS|||0|Y|N||1411458| And I want to convert the date format to: ... (5 Replies)
Discussion started by: ChicagoBlues
5 Replies

10. Shell Programming and Scripting

create filename with 'DD/MM/YYYY' date format

Hi, I can use the following command to create a file with some name then underscore and then date appended to it in the format 'DD-MM-YYYY': touch "newfile_`date '+%d-%m-%Y'`" But it gives me error when I try with the similar command to create a file with the date format 'DD/MM/YYYY'. I... (4 Replies)
Discussion started by: royalibrahim
4 Replies
Login or Register to Ask a Question