Deleting specific lines in a file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Deleting specific lines in a file
# 1  
Old 08-04-2011
Deleting specific lines in a file

Hello,

I have a file filled with dates, such as:

Code:
04-08-2011 message
04-08-2011 message
03-08-2011 message
01-08-2011 message
31-07-2011 message
24-07-2011 message
15-07-2011 message
13-12-2008 message
26-11-2007 message

And I want to delete those lines whose date is older than 10 days.

Someway like "find ... -mtime +10 rm{}..." but relating to the lines in a file...

Ah, it should be under "AIX"

Thank you

Last edited by asanchez; 08-04-2011 at 06:56 AM..
# 2  
Old 08-04-2011
Code:
perl '-MPOSIX qw(strftime)' -nle'BEGIN {
  $dt = strftime "%Y%m%d", localtime time - 86400 * shift;
  }
 (join "", (split /[\s-]+/)[2,1,0]) >= $dt and print   
  ' 10 infile


The above command will print the remaining lines on the standard output.
If you want to modify your existing file:

Code:
perl -i.bck '-MPOSIX qw(strftime)' -nle'BEGIN {
  $dt = strftime "%Y%m%d", localtime time - 86400 * shift;
  }
 (join "", (split /[\s-]+/)[2,1,0]) >= $dt and print   
  ' 10 infile

# 3  
Old 08-04-2011
Nice!

But it does not remove the lines, it just print them.
Is it possible to do it in ksh?

Thank you
# 4  
Old 08-04-2011
I've updated my previous post.
# 5  
Old 08-04-2011
Okay,

thank you. I would like to have in ksh but it's a good workaround for the moment in perl.
# 6  
Old 08-04-2011
You could do it in pure Korn Shell easily if you have a recent version of ksh93 that support the following syntax:

Code:
ksh-JM 93u 2011-02-08$ print -f  '%(%Y%m%d)T\n' '10 days ago'
20110725


Alternatively you could use the datecalc script by Perderabo.

Last edited by radoulov; 08-04-2011 at 09:07 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Deleting specific lines from text file via scripting

Hi, I'm trying to search for some number and from that line, i need to delete the 5th line exactly. Eg: Consider below as text file data: 10000 a b c d e . . . 10000 w q t (8 Replies)
Discussion started by: Gautham
8 Replies

2. Shell Programming and Scripting

Issue deleting all lines (having a specific string) in a file

I'm trying to create a script. There are 2 files - fileA.log & fileB.log fileA.log has the below data : aaaa cccc eeee fileB.log has the below data : cjahdskjah aaaa xyz jhaskjdhas bbbb abc ajdhjkh cccc abc cjahdskjah ... (7 Replies)
Discussion started by: Pandee
7 Replies

3. Shell Programming and Scripting

Help required deleting specific lines from file

Hi, I have a file with 20 columns of data and hundreds of lines of the same format. Here is an example line. The data repeats underneath with the same format. 15 1 4 GLY - 1 65 LYSH 23 N - 24 H - 634 O 0.188 157.552 487 48.70I have been sorting this data by hand but I was wondering if I... (3 Replies)
Discussion started by: livbaddeley
3 Replies

4. Shell Programming and Scripting

Deleting lines in a fixed length file where there is a word at specific location

I have a big file having 100 K lines. I have to read each line and see at 356 character position whethere there is a word "W" in it. If it is their then don't delete the line otherwise delete it. There are two lines as one Header and one trailer which should remain same. Can somebody... (5 Replies)
Discussion started by: mohit kanoongo
5 Replies

5. UNIX for Dummies Questions & Answers

Deleting lines that contain a specific string from a space delimited text file?

Hi, I have a space delimited text file that looks like the following: 250 rs10000056 0.04 0.0888 4 189321617 250 rs10000062 0.05 0.0435 4 5254744 250 rs10000064 0.02 0.2403 4 127809621 250 rs10000068 0.01 NA 250 rs1000007 0.00 0.9531 2 237752054 250 rs10000081 0.03 0.1400 4 17348363... (5 Replies)
Discussion started by: evelibertine
5 Replies

6. Shell Programming and Scripting

deleting specific lines in a file

Hello, I have a file like: 26-07-2011 sunz02 message1 26-07-2011 sunz02 message2 26-07-2011 sunz02 message3 15-07-2011 sunz02 message1 15-07-2011 sunz02 message2 15-07-2011 sunz02 message3... (5 Replies)
Discussion started by: asanchez
5 Replies

7. Shell Programming and Scripting

Deleting specific lines in a file

Hello, I have a file like this one: 03-07-2011 sunz02 message1 03-07-2011 sunz02 message2 03-07-2011 sunz02 message3 01-07-2011 sunz02 message1 01-07-2011 sunz02 message2 01-07-2011 sunz02 ... (1 Reply)
Discussion started by: asanchez
1 Replies

8. Shell Programming and Scripting

deleting specific lines in a file

I want to delete all lines from a file (orig_file) that contain the regex values (bad_inv_list) I tried a for each loop with sed but it isn't working for file in `cat bad_inv_list`; do sed '/$file/d' orig_file > pared_down_file.1 mv pared_down_file.1 orig_file done I've added... (2 Replies)
Discussion started by: verge
2 Replies

9. Shell Programming and Scripting

Shell deleting specific lines

Hi, I'am working under unix solaris I have a text file with set of lines, each set of lines (BLOCK) have three fixed lines : Between SECND line and THEND we have N lines, N differ from a block to another sample : i have to make a script wich delete each 3 fixed lines if N=0... (3 Replies)
Discussion started by: salbanito
3 Replies

10. Shell Programming and Scripting

Deleting specific lines in a file

I have a file which has some lines starting with a particular word. I would like to delete 5 lines before each such line containing that particular word. eg: line1 line2 line3 line4 line5 line6 "particular word"... I would like to delete line2-line6 and all such occurences in that... (4 Replies)
Discussion started by: ramu_1980
4 Replies
Login or Register to Ask a Question