deleting lines


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting deleting lines
# 1  
Old 04-30-2003
deleting lines

I am trying deleting lines from a text file using sed..

sed '/OBJECT="ABC/{N;N;N;d; }'

will do if i have to delete lines starting with Object and next 3 lines
but I was looking for a way to delet lines starting with OBJECT and all the lines till it reaches a blank lines ..or it reaches a line with OBJECT in it ...

i tried all kind of things .. didn't work .

Will appreciate help

thanks in advance ..
Smilie
# 2  
Old 05-01-2003
You have to use a loop...
Code:
#! /usr/bin/ksh
target=OBJECT
sed -n -e "
s/${target}//
t loop
p
b
:loop
s/.*//
n
s/${target}//
t
b loop"
exit 0

# 3  
Old 05-01-2003
Not that I can decipher how that works Smilie but I invoked it (assuming your script is called theScript and the OP's text file is called theFile) by typing theScript < theFile and it deletes any line with the word OBJECT on it as well as the line immediately following any line with the word OBJECT on it, but nothing else..
# 4  
Old 05-01-2003
deleting lines following pattern

this script deletes line with pattern and again search for pattern and deletes it ..
May be i haven't explained properly...
Once i delete the line with pattern i need to delete all the lines after the pattern till the time it sees a blank line.
I am working on database file ..
which is in this format ..
OBJECT="NAME" ACTION="REDEFINE" "NAME_A"="KAJNABI-XYZ"
DESCRIPTION="FGH"
.
.
.
.
AUTO_RESET="0"
.
.
.
***************BLANK LINE**********
OBJECT="NAME" ACTION="REDEFINE" "NAME_A"="AJNABI-GFT"
DESCRIPTION="GFR"
.
.
.
.
AUTO_RESET="0"
.
.
.

OBJECT="NAME" ACTION="REDEFINE" "NAME_A"="KAJNABI-XYZ"
DESCRIPTION="FGH"
.
.
.
.
AUTO_RESET="0"
.
.
.

WHAT i need to do is delete line with pattern say KAJNABI and delete all the lines after it till it sees the blank line .. and again search for the pattern and does the same again ...
I understand that i will have to use the loop but how exactly I am going to do this .. makes me confused ....

thanks
# 5  
Old 05-01-2003
I understand the script in general now..

From what I see, the part where n deletes the next line should delete all lines until the next $target is found, but it doesn't; however, the second instance of s/${target}// should actually be searching for a blank line instead of $target..
# 6  
Old 05-01-2003
I tested my script again and it continues to work for me. It starts deleting when it sees a line containing "OBJECT". It keeps on deleting until it sees a second line containing "OBJECT". Then it starts over again.
# 7  
Old 05-01-2003
code:--------------------------------------------------------------------------------#! /usr/bin/ksh
target=OBJECT
sed -n -e "
s/${target}//
t loop
p
b
:loop
s/.*//
n
s/^$// # till the blank line
t
b loop"
exit 0

did the job ...
Thanks perderabo ...
but for some reason i was running script the way it was .. was just deleting one line containing the pattern...Just curious why it ws doing that .. i was trying running this script on database file .. its in the format the way i mentioned in my post...and say my pattern is KAJNABI ...


This is the best forum i have seen ....

Thanks guys
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Deleting all lines containing numbers

Hi guys I have a text file in the following format what i would like ot do is iterate through the file deleting the lines containing only numbers. I have googled this and have been unable to find any help ( maybe its my search terms) so if any one an give me a heads up i would... (3 Replies)
Discussion started by: dunryc
3 Replies

2. Shell Programming and Scripting

deleting lines in ex

Hello, im using ex to manipulate some text. Im trying to delete all the lines except those on which a certain regex can be found. the important part of the script: ex temp << 'HERE' g/regex/p HERE this command prints the lines I want to end up with, but it doesnt delete the others.... (2 Replies)
Discussion started by: drareeg
2 Replies

3. Shell Programming and Scripting

deleting lines from file

We have a server that logs transactions to a file. I want to write a script that will delete the first 50 lines of the file daily without renameing the file or moving the file. (8 Replies)
Discussion started by: daveisme
8 Replies

4. Shell Programming and Scripting

Deleting particular lines.

hi all, i have got a scenario in which i need to delete all the lines that ends with file names. e.g. input can be cms/images/services_icons/callback.png cms/cms/images/services_icons/sync.php cms/cms/images/services_icons and output should be cms/cms/images/services_icons ... (13 Replies)
Discussion started by: kashifv
13 Replies

5. Shell Programming and Scripting

deleting last n lines from a output

Friends, I am executing this command in solaris sar -d 3 3 | awk 'NR > 2 { if ($1 !~ /,.+/) print }' | egrep -v "nfs|device" . Now i want to delete the last two lines of my output as they are records of average which i don't want. can some one pls give me some idea on how to proceed. (7 Replies)
Discussion started by: achak01
7 Replies

6. UNIX for Advanced & Expert Users

Deleting lines from a file

How I can delete 100 lines anywhere in a file without opening a file and without renaming the file. (11 Replies)
Discussion started by: Nirgude07
11 Replies

7. Shell Programming and Scripting

Deleting processed lines

I have a log file that I am processing. This contains messages from and to a server (requests and responses). The responses to requests may not be in order i.e. we can have a response to a request after several requests are sent, and in some error cases there may not be any response message. ... (2 Replies)
Discussion started by: BootComp
2 Replies

8. Shell Programming and Scripting

Deleting the similar lines

Dear Friends myself Avinash working in bash shell The problem goes like this I have a file called work.txt assume that first colum=mac address second colum= IP third colum = port number ---------------------------------------- 00:12:23:34 192.168.50.1 2 00:12:23:35 192.168.50.1 5... (2 Replies)
Discussion started by: avi.skynet
2 Replies

9. Shell Programming and Scripting

Deleting lines in a file

How do I delete all the lines after the line containing text ***DISCLOSURES*** . I want to delete this line too. Thank you (2 Replies)
Discussion started by: reachsamir
2 Replies

10. Programming

deleting lines

I am spooling a file from oracle and trying to delete the last line of the spooled file which I am unable to do. Problem is that this file can have multiple records each time and I have no way of knowing how many because the amount can vary. I had an idea of using a while loop to read the... (1 Reply)
Discussion started by: supercbw
1 Replies
Login or Register to Ask a Question