Visit Our UNIX and Linux User Community


how can I delete lines without actually going into the file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting how can I delete lines without actually going into the file
# 1  
Old 03-10-2002
how can I delete lines without actually going into the file

what am trying to do is delete a line in a specific file but I dont know what to do. I cant use the sed or awk commands because these commands dont really alter the original file. they only alter what they display on the screen

by the way, am trying to do this from a script so if anybody can help me, I'd really appreciate it.

thanks
# 2  
Old 03-11-2002
You can use sed or awk because I don't believe there is any such command that will delete a line without creating a new file.

Simply - use grep -v and search for the specific line (as long as your grep statement is correct you will remove only that line). Send the output to a new temp file and then move it back to the original filename. If you try to use grep -v and send the output to the original file, you would be left with a 0 byte file.
thehoghunter
# 3  
Old 03-11-2002
You could try this in your script:

sed -e '1d
24d
35d' $file > $file.tmp
/usr/bin/mv $file.tmp $file
/usr/bin/rm $file.tmp

This will delete lines 1, 24, and 35 from your file. You'll never notice the temporary file.
# 4  
Old 03-12-2002
What about using "ed", or "ex"?
Say, you had a list of files and directories in a text file named tmp.list.
If you wanted to get rid of all items matching "Desktop" (the same as using "grep -v Desktop tmp.list > file.tmp; mv file.tmp tmp.list), you could do this:
Code:
ed tmp.list <<EndOfFile
g/Desktop/d
w
q
EndOfFile

... Piece of cake, eh?
This User Gave Thanks to LivinFree For This Post:
# 5  
Old 03-17-2002
Don't know too much about ed - I'm fairly comfortable with vi - never used ed...... how limited is it compared with vi (I assue it's not a viewable editor....) ???
# 6  
Old 03-19-2002
No, it's very much line oriented. I very very very rarely use it, and for that reason don't know too much about it. The man page on my system if fairly helpful though. You might also see if you've got "ex" installed - I believe it's a little more friendly / powerful.

Previous Thread | Next Thread
Test Your Knowledge in Computers #964
Difficulty: Medium
HTML4 became a W3C Recommendation in 1994.
True or False?

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

Featured Tech Videos