delete multiline string from file using sed.


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting delete multiline string from file using sed.
# 1  
Old 07-07-2009
delete multiline string from file using sed.

Hi,

I have file which has the following content...

GOOD MORNING
**********WARNING**********
when it kicks from the kickstart, sshd daemon should start at last.
(WHEN KICKING ITSELF, NOT AFTER KICKING).

/etc/rc3.d/S55sshd ( run level specification for sshd is 55, now I would want to change this to S99sshd.

**********WARNING***********
THANKYOU

I want to write sed command to remove the data which is there in between *****WARNING****.


My expected output is:
GOODMORNING
THANKYOU


Kindly help me to do this...

Even if its in awk that is also appreciated.
# 2  
Old 07-07-2009
This may be simple and will work if you have only two "WARNING" keywords in the file

#!/usr/bin/sh
start=`grep -n WARNING file1 | cut -d":" -f1 |head -1`
end=`grep -n WARNING file1 | cut -d":" -f1 |tail -1`
sed "$start,$end d" file1
# 3  
Old 07-07-2009
Code:
sed '/WARNING/,/WARNING/d'


or perl:

Code:
$_=<<EOF;
GOOD MORNING
**********WARNING**********
when it kicks from the kickstart, sshd daemon should start at last.
(WHEN KICKING ITSELF, NOT AFTER KICKING).

/etc/rc3.d/S55sshd ( run level specification for sshd is 55, now I would want to change this to S99sshd.

**********WARNING***********
THANKYOU
EOF
s/\*+WARNING\*+.*\*+WARNING\*+\n//s;
print;

# 4  
Old 07-07-2009
Lightbulb

Quote:
Originally Posted by skmdu
Hi,

I have file which has the following content...

GOOD MORNING
**********WARNING**********
when it kicks from the kickstart, sshd daemon should start at last.
(WHEN KICKING ITSELF, NOT AFTER KICKING).

/etc/rc3.d/S55sshd ( run level specification for sshd is 55, now I would want to change this to S99sshd.

**********WARNING***********
THANKYOU

I want to write sed command to remove the data which is there in between *****WARNING****.


My expected output is:
GOODMORNING
THANKYOU


Kindly help me to do this...

Even if its in awk that is also appreciated.
I laid my hands on this command..I hope it helps:

user@server > sed '/^*/,/^*/d' temp.txt
GOODMORNING
THANKYOU

where temp.txt is your text above.
# 5  
Old 07-07-2009
Bug

Hi everybody,

Thank you so much for your valuable reply...

Finally I used,

sed '
:loop
s|\**WARNING\**\(.*\)\**WARNING\**||
t loop
/WARNING/!b
N
b loop' filename

Thank you once again.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

[sed]: Substitute a string with a multiline value

Dear all, I try to replace a string of characters in a file (MyFile.txt) by a multiline value of the variable "Myvar": $ cat MyFile.txt DESCRIPTION '@TargetTable SCHEMA' ( @InputFlowDef ); $ The content of Myvar: $ echo "$Myvar" col1 , col2 , col3 $ (4 Replies)
Discussion started by: dae
4 Replies

2. Shell Programming and Scripting

sed - delete content inside tags multiline

I need that a certain part of the content below excluded ==Image Gallery== followed by <gallery> and the content until </gallery> test SED1 ==Image Gallery== <gallery> Image:car1.jpg| Car 1<sup>1</sup> Imagem: car2.jpg| Car2<sup>2</sup> </gallery> test SED2 ==Image... (5 Replies)
Discussion started by: dperboni
5 Replies

3. Shell Programming and Scripting

Change/Delete Multiline text

Hi, I want to change/delete all occurences of a multiline text in a file which match the specific pattern: aaa <This text should be changed>bbb ccc ddddddd eee<This text should be changed> fff gggggg hhh<This text should be deleted> iii jjjj kkkkk<This text should be... (1 Reply)
Discussion started by: wenclu
1 Replies

4. Shell Programming and Scripting

delete the line with a particular string in a file using sed command.

Hello, I want to delete all lines with given string in file1 and the string val is dynamic. Can this be done using sed command. Sample: vars="test twinning yellow" for i in $vars do grep $i file1 if then echo "Do Nothing" else sed `/$i/d` file1 fi done Using the above... (5 Replies)
Discussion started by: PrasadAruna
5 Replies

5. Shell Programming and Scripting

SED help delete characters in a string

Hi Please help me to refine my syntax. I want to delete the excess characters from the out put below. -bash-3.00$ top -b -n2 -d 00.20 |grep Cpu|tail -1 | awk -F ":" '{ print $2 }' | cut -d, -f1 4.4% us now i want to delete the % and us. How wil i do that to make it just 4.4. Thanks (7 Replies)
Discussion started by: redtred
7 Replies

6. UNIX for Dummies Questions & Answers

Delete string between delimiters with sed

Hi, I need to delete all text between "|" delimiters. The line in text file typically looks like this: 1014182| 13728 -rw-r--r-- 1 imac1 staff 7026127 2 okt 2010 |/Users/imac1/Music/iTunes/iTunes Media/Music/Various Artists/We Are the World_ U.S.A. for Africa/01 We Are the World.mp3... (2 Replies)
Discussion started by: andrejm
2 Replies

7. Shell Programming and Scripting

sed delete wildcard within a string

Hi I would like to batch delete the "note" entry from bib files. The start would be defined by "note ={" and the end by "}." (see example bib entry below). I tried the following command which does not have any effect: cat input.bib| sed -e 's/note = {.*}.//' > output.bib Any help would... (2 Replies)
Discussion started by: gerggeismann
2 Replies

8. Shell Programming and Scripting

SED delete string from till problems

Hi i have a file which contains 2 lines, line 1 is static data. line 2 is a very large string(over 3000char or much more). in that string are tags which i want to delete. e.g. <order1>123</order1><tag1>data</tag1><new>1</new><order2>124</order2><tag1>data</tag1> all one one line. now i... (5 Replies)
Discussion started by: subby80
5 Replies

9. Shell Programming and Scripting

Using sed to delete string between delimiters

Hi There! I have the following string which i need to convert to i.e. between each occurence of the delimiter ('|' in this case), i need to delete all characters from the '|' to the ':' so that |10,9:12/xxx| becomes |12/xxx| How can i do this using sed? Thanks in advance! (13 Replies)
Discussion started by: orno
13 Replies

10. UNIX for Dummies Questions & Answers

Using sed to delete a string?

Hi all! Here is my problem : I have a string like the following : 20030613170404;BAN_CAV ; starting script Loader.sh on ; 13/06/2003 at ; 17;04;03 I want to eraze all characters located after "Loader.sh", because there are unuseful. I tried to use sed...but it didnt work....i guess i... (1 Reply)
Discussion started by: HowardIsHigh
1 Replies
Login or Register to Ask a Question