Grep a string in a range and delete the line


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Grep a string in a range and delete the line
# 1  
Old 07-24-2009
Grep a string in a range and delete the line

Hi,

i need to delete a lines after searching a particular string but this searching should only happen after the 4th line..

basically imagine a file like this

From: abcd.yahoo.com
To: cdeb.yahoo.com
Subject: hi all
sdfsd
sadasd
asdasd
dfsdf
From: abcd.yahoo.com
To: cdeb.yahoo.com
Subject: hi all
asdfasdf
asdfasdf
dsghsdfg
hjhdfg

and i need the ouput like this

From: abcd.yahoo.com
To: cdeb.yahoo.com
Subject: hi all
sdfsd
sadasd
asdasd
dfsdf
asdfasdf
asdfasdf
dsghsdfg
hjhdfg

how do i do this either grep or sed or awk.. please help..
# 2  
Old 07-24-2009
try..
Code:
-bash-3.2$ sed '8,10d' file
From: abcd.yahoo.com
To: cdeb.yahoo.com
Subject: hi all
sdfsd
sadasd
asdasd
dfsdf
asdfasdf
asdfasdf
dsghsdfg
hjhdfg
-bash-3.2$

# 3  
Old 07-24-2009
The following command removes header lines (From, To, Subject) after the 4th line :
Code:
awk 'NR>4 && /^(From|To|Subject):/ {next} 1' inputfile

Inputfile:
Code:
From: abcd.yahoo.com
To: cdeb.yahoo.com
Subject: hi all
1-sdfsd
1-sadasd
1-asdasd
1-dfsdf 
From: abcd.yahoo.com
To: cdeb.yahoo.com
Subject: hi all
2-asdfasdf
2-asdfasdf
2-dsghsdfg
2-hjhdfg

Output:
Code:
From: abcd.yahoo.com
To: cdeb.yahoo.com
Subject: hi all
1-sdfsd
1-sadasd
1-asdasd
1-dfsdf 
2-asdfasdf
2-asdfasdf
2-dsghsdfg
2-hjhdfg

Jean-Pierre.
# 4  
Old 07-27-2009
Code:
sed '4,${
	/From/{
	N
	N
	d
	}
}'

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Search for a string,delete the line and replace with new string in a file

Hi Everyone, I have a requirement in ksh where i have a set of files in a directory. I need to search each and every file if a particular string is present in the file, delete that line and replace that line with another string expression in the same file. I am very new to unix. Kindly help... (10 Replies)
Discussion started by: Pradhikshan
10 Replies

2. UNIX for Advanced & Expert Users

Vi remove line range containing a string

In vi I would like to remove a line containing a string. I thought after reading this I could do this. https://www.unix.com/302297288-post3.html :'3560,3572/gcc/d' It keeps complaining vi mark not set. And sometimes it complains E488: Trailing characters. I don't understand what mark... (5 Replies)
Discussion started by: cokedude
5 Replies

3. UNIX for Advanced & Expert Users

How to find a string in a line in UNIX file and delete that line and previous 3 lines ?

Hi , i have a file with data as below.This is same file. But actual file contains to many rows. i want to search for a string "Field 039 00" and delete that line and previous 3 lines in that file.. Can some body suggested me how can i do using either sed or awk command ? Field 004... (7 Replies)
Discussion started by: vadlamudy
7 Replies

4. Shell Programming and Scripting

sed command to grep multiple pattern present in single line and delete that line

here is what i want to achieve.. i have a file with below contents cat fileName blah blah blah . .DROP this REJECT that . --sport 7800 -j REJECT --reject-with icmp-port-unreachable --dport 7800 -j REJECT --reject-with icmp-port-unreachable . . . more blah blah blah --dport 3306... (14 Replies)
Discussion started by: vivek d r
14 Replies

5. Shell Programming and Scripting

Grep range of lines to print a line number on match

Hi Guru's, I am trying to grep a range of line numbers (based on match) and then look for another match which starts with a special character '$' and print the line number. I have the below code but it is actually printing the line number counting starting from the first line of the range i am... (15 Replies)
Discussion started by: Kevin Tivoli
15 Replies

6. Shell Programming and Scripting

Grep a string from input file and delete next three lines including the line contains string in xml

Hi, 1_strings file contains $ cat 1_strings /home/$USER/Src /home/Valid /home/Review$ cat myxml <projected value="some string" path="/home/$USER/Src"> <input 1/> <estimate value/> <somestring/> </projected> <few more lines > <projected value="some string" path="/home/$USER/check">... (4 Replies)
Discussion started by: greet_sed
4 Replies

7. Shell Programming and Scripting

Grep a string and write a value to next line of found string

Hi, I have two variables x and y. i need to find a particular string in a file, a workflow name and then insert the values of x and y into the next lines of the workflow name. basically it is like as below wf_xxxxxx $$a= $$b= $$c= figo $$d=bentley i need to grep the 'wf_xxxx' and then... (6 Replies)
Discussion started by: angel12345
6 Replies

8. Shell Programming and Scripting

Sed or Grep to delete line containing patter plus extra line

I'm new to using sed and grep commands, but have found them extremely useful. However I am having a hard time figuring this one out: Delete every line containing the word CEN and the next line as well. ie. test.txt blue 324 CEN green red blue 324 CEN green red blue to produce:... (2 Replies)
Discussion started by: rocketman88
2 Replies

9. Shell Programming and Scripting

Replace string in a file within a range of line

Hi, I want to replace the srting '; with ABCD'; in a file from line 1 to line 65. Is there any single command to do it without using awk Thanks for quick reply https://www.unix.com/images/misc/progress.gif (3 Replies)
Discussion started by: tosattam
3 Replies

10. Shell Programming and Scripting

How to keep(or grep) range of line ?

I have simple text log file look like that ----------------------------------------- Mon May 8 07:02:41 2006 Some text to show log Mon May 8 07:05:30 2006 Some text to show log Some text to show log Mon May 8 07:11:07 2006 Some text to show log Mon May 8 07:45:56 2006 Some text to... (1 Reply)
Discussion started by: aungomarin
1 Replies
Login or Register to Ask a Question