Delete a row from a file if one column containing a date is greater than the current system date


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Delete a row from a file if one column containing a date is greater than the current system date
# 1  
Old 07-05-2011
Delete a row from a file if one column containing a date is greater than the current system date

Hello gurus,

I am hoping someone can help me with the required code/script to make this work. I have the following file with records starting at line 4:
Code:
NETW~US60~000000000013220694~002~~IT~USD~2.24~20110201~99991231~01~01~20101104~
NETW~US60~000000000013220694~003~~IT~USD~2.23~20110201~99991231~01~01~20111104~
NETW~US60~000000000013234445~001~~IT~USD~0.33~20090107~99991231~01~01~~

Logic would be:

1. Start reading line @ Row 4.
2. Check the date of the last column.
3. If date > current date, delete line
3. If there is no date, retain line

So from the example above, the record in the middle should be deleted from the file, thus retaining the 1st and 3rd lines.

Much appreciated!
Chumsky

Last edited by Franklin52; 07-06-2011 at 04:18 AM.. Reason: Please use code tags for code and data samples, thank you
# 2  
Old 07-06-2011
Code:
$ today=`date +%Y%m%d`;nawk -F"\~" -v date=$today '{ if( $13 < date) {print $0} }' filename
NETW~US60~000000000013220694~002~~IT~USD~2.24~20110201~99991231~01~01~20101104~
NETW~US60~000000000013234445~001~~IT~USD~0.33~20090107~99991231~01~01~~

# 3  
Old 07-06-2011
Thank you very much itkamaraj. This works perfectly, only thing I am missing is how to start reading the file from row 4. Any ideas?

Thanks!
# 4  
Old 07-06-2011
Code:
 
today=`date +%Y%m%d`;nawk -F"\~" -v date=$today '{ if(NR >3) { if( $13 < date) {print $0}}}' filename

This User Gave Thanks to itkamaraj For This Post:
# 5  
Old 07-06-2011
you are a star! Thank you
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Replace date in file every day with current date

I Have text like XXX_20190908.csv.gz need to replace Only date in this format with current date every day Thanks! (1 Reply)
Discussion started by: yamasani1991
1 Replies

2. UNIX for Beginners Questions & Answers

“sed” replace date in text file with current date

We want to call a parameter file (.txt) where my application read dynamic values when the job is triggered, one of such values are below: abc.txt ------------------ Code: line1 line2 line3 $$EDWS_DATE_INSERT=08-27-2019 line4 $$EDWS_PREV_DATE_INSERT=08-26-2019 I am trying to write a... (3 Replies)
Discussion started by: pradeepp
3 Replies

3. Shell Programming and Scripting

Subtract a file's modification date with current date

SunOS -s 5.10 Generic_147440-04 sun4u sparc SUNW,SPARC-Enterprise Hi, In a folder, there are files. I have a script which reads the current date and subtract the modification date of each file. How do I achieve this? Regards, Joe (2 Replies)
Discussion started by: roshanbi
2 Replies

4. UNIX for Beginners Questions & Answers

How to delete row in csv file on date range?

I want to delete row in csv file , which row value from 2009-10-01 to 2011-06-03 using script.my csv row data look like: 2009-10-01 2011-03-30 2011-03-31 2011-04-01 2011-06-03 2011-06-30 2011-07-01 2011-09-28 ... (7 Replies)
Discussion started by: rakibul639
7 Replies

5. UNIX for Dummies Questions & Answers

Comparing Output Date to Current System Date

Hi Guys, Anyone who knows how to compare the current date with the a file containing a date, say for example I have a file that looks like this: Command was launched from partition 0. ------------------------------------------------ Executing command in server server6 Fri Dec 16... (7 Replies)
Discussion started by: rymnd_12345
7 Replies

6. Shell Programming and Scripting

search column and delete row if greater than value

Hi, as the title states i need to find a way to search a column for values great than 1000, and if it is, then delete that row. An example 1 7.021 6.967 116.019 4 U 6.980E+07 0.000E+00 e 0 0 0 0 2 8.292 7.908 118.063 3 U 1.440E+07 0.000E+00 e 0 821 814 ... (3 Replies)
Discussion started by: olifu02
3 Replies

7. Shell Programming and Scripting

delete a row in csv file based on the date

Hi, I have a csv file with old data..i need to have only last 30 days from the current dateof data in the file.The fourth field in the file is a date field.i need to write a script to delete the old data by comparing the the fourth field with the (current date -30).I need to delete the rows in... (2 Replies)
Discussion started by: pals70423
2 Replies

8. Shell Programming and Scripting

csv file field needs to be changed current system date with awk

HI, I have csv file with records as shown below. 4102,Bangalore,G10,21,08/17/2011 09:28:33:188,99,08/17/2011 09:27:33:881,08/17/2011... (1 Reply)
Discussion started by: raghavendra.nsn
1 Replies

9. Shell Programming and Scripting

how to get what date was 28 days ago of the current system date IN UNIX

Hi, Anybody knows how to get what date was 28 days ago of the current system date through UNIX script. Ex : - If today is 28th Mar 2010 then I have to delete the files which arrived on 1st Mar 2010, (15 Replies)
Discussion started by: kandi.reddy
15 Replies

10. Shell Programming and Scripting

Perl: Extracting date from file name and comparing with current date

I need to extract the date part from the file name (20080221 in this ex) and compare it with the current date and delete it, if it is a past date. $file = exp_ABCD4_T-2584780_upto_20080221.dmp.Z really appreciate any help. thanks mkneni (4 Replies)
Discussion started by: MKNENI
4 Replies
Login or Register to Ask a Question