How can i delete the content between all the occurences of two strings using sed or awk command


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How can i delete the content between all the occurences of two strings using sed or awk command
# 8  
Old 08-17-2011
Smilie That is Working great Frank.Thank you very much.

I am new to shell scripting..Just trying to understand how you have written this.

Thank you very much again.

---------- Post updated at 01:14 PM ---------- Previous update was at 01:11 PM ----------

Smilie That is Working great Frank.Thank you very much.

As I am new to shell scripting..just trying to understand the code you have written.

Thank you very much again.
# 9  
Old 08-17-2011
testdata:
Code:
12345
<script>------------------------</script>
23456<script>-----------</script><script>
-----------------------------------------
--------------------------------</script>
<script>----------------</script><script>
-----------------------------------------
---------------------------</script>34567
4<script>--</script>567<script></script>8
56<script>-------------------</script>789


Expected output:
Code:
12345
23456
34567
45678
56789


descriptinator.sed:
Code:
#n

:top
/<script>/ {
        # Change the first <script> in the line to \n.
        # We can be certain that there will not be a newline in the
        # initial pattern space, so this is unambiguous.
        s//\
/
        # If the closing </script> is on the same line, change it also
        # to \n and delete everything in between, newlines inclusive.
        # If the result in an empty line, print nothing.
        /<\/script>/ {
                s//\
/
                s/\n.*\n//
                b empty?
        }

        # The </script> element is not on the same line as its <script>.
        # Before moving on in search of it, delete from the newline to the
        # end of line.  Print only if the line is not empty.
        s/\n.*//
        /./p

        # Discard lines until closing </script> is found.
        :next
        n
        /<\/script>/! b next

        # Change </script> to \n and delete preceding text.
        s//\
/
        s/.*\n//

        :empty?
        # If the line has been left empty, do not print a blank line.
        /./!d

        # In case there's another <script> element later in the line.
        b top
}
p


Descriptinator Test run:
Code:
$ sed -f descriptinator.sed testdata 
12345
23456
34567
45678
56789


Regards,
Alister
# 10  
Old 08-18-2011
Thank you Alister. It is working great. Most importantly it works for most of the cases especially when the starting and the ending tag are in same line.

Thanks again.

Regards
Satheesh
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Sed, awk or another bash command to modify string with the content of another file

Hello everybody, I would like modify some strings using sed or another command line with the content file. For example: - {fqdn: "server-01" , ip: "server-01"} - {fqdn: "server-02" , ip: "server-02"} - {fqdn: "server-03" , ip: "server-03"} - {fqdn: "server-04" , ip: "server-04"} My... (4 Replies)
Discussion started by: dco
4 Replies

2. Shell Programming and Scripting

awk to delete content before and after a matched pattern

Hello, I have been trying to write a script where I could get awk to delete data before and after a matched pattern. For eg Raw data Start NAME = John Age = 35 Occupation = Programmer City = New York Certification Completed = No Salary = 80000 End Start NAME = Mary Age = 25... (2 Replies)
Discussion started by: sidnow
2 Replies

3. UNIX for Advanced & Expert Users

Perl regex problem on strings with several occurences of one char

Hi all, i have the following line in a record file : retenu=non demande=non script=#vtbackup /path=/save/backup/demande position=140+70 and i want to use Perl regex to have the following output key : "retenu" value : "non" key : "demande" value "non" key : "script" value :... (2 Replies)
Discussion started by: Fundix
2 Replies

4. 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

5. Shell Programming and Scripting

Count the occurences of strings

I have some text files in a folder f1 with 10 columns. The first five columns of a file are shown below. aab abb 263-455 263 455 aab abb 263-455 263 455 aab abb 263-455 263 455 bbb abb 26-455 26 455 bbb abb 26-455 26 455 bbb aka 264-266 264 266 bga bga 230-232 230 ... (10 Replies)
Discussion started by: gomez
10 Replies

6. Shell Programming and Scripting

Delete 2 strings from 1 line with sed?

Hi guys, I wonder if it's possible to search for a line containing 2 strings and delete that line and perhaps replace the source file with already deleted line(s). What I mean is something like this: sourcefile.txt line1: something 122344 somethin2 24334 45554676 line2: another something... (6 Replies)
Discussion started by: netrom
6 Replies

7. Shell Programming and Scripting

Using Bash/Sed to delete between identical strings

Hi. I'm hoping that someone can help me with a bash script to delete a block of lines from a file. What I want to do is delete every line between two stings that are the same, including the line the first string is on but not the second. (Marked lines to match with !) For example if I... (2 Replies)
Discussion started by: Zykr
2 Replies

8. Shell Programming and Scripting

awk/sed/perl command to delete specific pattern and content above it...

Hi, Below is my input file: Data: 1 Length: 20 Got result. Data: 2 Length: 30 No result. Data: 3 Length: 20 (7 Replies)
Discussion started by: edge_diners
7 Replies

9. Shell Programming and Scripting

sed, awk [TAG]$content[/TAG] How to get var in $content in textfile?

Hello, I got a Qstion. Im posting to a phpbb forum with bash and curl.. i have a text file with the following tags that i post to the forum: $var1 $var2 $var3 How can i with sed or awk put var content from shell script between the ... in the... (7 Replies)
Discussion started by: atmosroll
7 Replies

10. UNIX for Dummies Questions & Answers

Counting occurences of different strings in a file

Hi, i'd like to know if the following is possible with a shell script, and can't find the answer in the search. Suppose i have a logfile build like this: # 8 :riuyzp1028 # 38 : riuyzp1028 # 25 : riuyvzp1032 # 30 : nlkljpa0202 # 1 : nlklja0205 # 38 : riuyzp1028 # 25 :... (4 Replies)
Discussion started by: Freerider
4 Replies
Login or Register to Ask a Question