Delete lines in a file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Delete lines in a file
# 1  
Old 02-06-2006
Delete lines in a file

I wish to delete lines from a log file. Should take a date string as a variable. Find the date in the file, get the line number for the string. Delete lines from 1 to that (line number - 1), all from within a shell script. Is that possible ?.

Thnks,

Smilie
# 2  
Old 02-06-2006
umal,

Yes you can. Use sed, cat and grep then you shou,d be able to do that or sed and awk.
# 3  
Old 02-07-2006
line=`grep -n "${datevariable}" log_filename|cut -d":" -f1`
sed "1,${line} d" log_filename
# 4  
Old 02-07-2006
I tried this out , sed "1,${line} d" log_filename

This leaves the log_filename as it is. I would have to
sed "1,${line} d" log_filename > log_filename.new
mv log_filename log_filename.old
mv log_filename.new log_filename

the log file is constantly being written to, so how can I guarantee there wont be any loss of data...

I wish to delete lines from the log as with "vi". Besides wont inodes change ?
# 5  
Old 02-07-2006
Code:
ruby -i -ne 'BEGIN{S=ARGV.shift}
  f=true if $_.index(S);print if f' "Dec 13" myfile

# 6  
Old 02-08-2006
What does ruby mean ?
# 7  
Old 02-08-2006
i dont have idea bt ruby
but as far as maintaining the same file inode, try this

perl -pie "s/.....
the idea here is to use perl with flags -pie, doubt if you have perl installed.
I have posted this solution of perl -pie on numerous occassions where a temp file creation is to be omitted.
you can find it in some searches.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Delete Some Lines from File

Hi, I have a txt document having a format like this: DATA1 | DATA2 | DATA3 | 23-JAN-20 23:41:34 DATA1 | DATA2 | DATA3 | 23-JAN-20 23:41:32 DATA1 | DATA2 | DATA3 | 23-JAN-20 23:41:30 ... DATA1 | DATA2 | DATA3 | 23-JAN-20 22:35:31 DATA1 | DATA2 | DATA3 | 23-JAN-20 22:30:34 DATA1 | DATA2 |... (1 Reply)
Discussion started by: gc_sw
1 Replies

2. Shell Programming and Scripting

Delete 40 lines after every 24 lines from a file

Hello, I have file of more than 10000 lines. I want to delete 40 lines after every 20 lines. e.g from a huge file, i want to delete line no from 34 - 74, then 94 - 134 etc and so on. Please let me know how i can do it. Best regards, (11 Replies)
Discussion started by: nehashine
11 Replies

3. UNIX for Dummies Questions & Answers

Delete lines in a file

Hi This is a sample of my data file. ##field PH01000000 1 4869017 #PH01000000G0240 WWW278545G0240 P.he_model_v1.0 erine 119238 121805 . - . ID=PH01000000G0240;Description="zinc finger, C3HC4 type domain containing protein, expressed"... (7 Replies)
Discussion started by: sonia102
7 Replies

4. UNIX for Advanced & Expert Users

In a huge file, Delete duplicate lines leaving unique lines

Hi All, I have a very huge file (4GB) which has duplicate lines. I want to delete duplicate lines leaving unique lines. Sort, uniq, awk '!x++' are not working as its running out of buffer space. I dont know if this works : I want to read each line of the File in a For Loop, and want to... (16 Replies)
Discussion started by: krishnix
16 Replies

5. UNIX for Dummies Questions & Answers

How get only required lines & delete the rest of the lines in file

Hiiii I have a file which contains huge data as a.dat: PDE 1990 1 9 18 51 28.90 24.7500 95.2800 118.0 6.1 0.0 BURMA event name: 010990D time shift: 7.3000 half duration: 5.0000 latitude: 24.4200 longitude: 94.9500 depth: 129.6000 Mrr: ... (7 Replies)
Discussion started by: reva
7 Replies

6. Shell Programming and Scripting

How to delete lines in a file that have duplicates or derive the lines that aper once

Input: a b b c d d I need: a c I know how to get this (the lines that have duplicates) : b d sort file | uniq -d But i need opossite of this. I have searched the forum and other places as well, but have found solution for everything except this variant of the problem. (3 Replies)
Discussion started by: necroman08
3 Replies

7. Shell Programming and Scripting

delete n last lines of a file

Hello!!! how can I delete the last n lines of a file??? Thanks (7 Replies)
Discussion started by: ncatdesigner
7 Replies

8. Shell Programming and Scripting

delete the lines from file

i have two files & want to delete the lines from 2nd file which matches with 1st file (2 Replies)
Discussion started by: sameersam
2 Replies

9. Shell Programming and Scripting

delete lines from a file.

I have a file which has about 500K records and I need to delete about 50 records from the file. I know line numbers and am using sed '13456,13457,......d' filename > new file. It does not seem to be working. Any help will greatly appreciated. (5 Replies)
Discussion started by: oracle8
5 Replies

10. UNIX for Dummies Questions & Answers

delete all lines in file

how can i delete all lines in file by using "vi" ? (6 Replies)
Discussion started by: strok
6 Replies
Login or Register to Ask a Question