Need help in sed: adding a line after each search block


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Need help in sed: adding a line after each search block
# 1  
Old 01-21-2009
Need help in sed: adding a line after each search block

Hi friends,

I have written script that will search & display the block of sql statement. Since there are many blocks of sql statement i am finding it difficult to distinguish between them. The below is the sed command & its result

exec sql
abc
abc
abc
aaaaaa;
exec sql
abc
abc
abc
aaaaaa;
eeeeeeeeeee
eeeeeeeeeee
exec sql
abc
abc
abc
aaaaaa;

using "exec sql" as begining & ";" as ending

sed -n "/exec sql/,/;/p" $srcCode


Result will be

exec sql
abc
abc
abc
aaaaaa;
exec sql
abc
abc
abc
aaaaaa;
exec sql
abc
abc
abc
aaaaaa;

I would like the result displayed as

exec sql
abc
abc
abc
aaaaaa;
---------------------
exec sql
abc
abc
abc
aaaaaa;
---------------------
exec sql
abc
abc
abc
aaaaaa;
---------------------

Kindly help me with this situation. Thanks.SmilieSmilie
# 2  
Old 01-21-2009
Code:
sed '/;$/a\---------------------' infile

Edit:
I just realize that I answered a bit fast. Your sed statement gives and error when I use it. On your second output all lines with those multiple "e"s are gone.
From your description I didn't even see that you wanted to remove those lines.
If the statement above isn't what you want, best just print simple input and output.

Last edited by zaxxon; 01-21-2009 at 04:54 AM.. Reason: added comment
# 3  
Old 01-21-2009
Quote:
Originally Posted by zaxxon
I just realize that I answered a bit fast. Your sed statement gives and error when I use it. On your second output all lines with those multiple "e"s are gone.
In that case you can try this:

Code:
awk '/exec/{p=1}/;$/{;print;print "-----------";p=0}p' file

Regards
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Adding a new line after a specific line with sed

Hi All, My requirement is to add a specific line in a file after a certain line that contains 'setenv' the existing code is like setenv SEQFILES "/ConvWrk/inteng03/alltars/bnymais1" LIBDEF scope='JOB' type='PGM' dataset='SUNAR.PJ90000P.JOBLIB'... (5 Replies)
Discussion started by: gotamp
5 Replies

2. Shell Programming and Scripting

sed adding a new line not working

sed '/patternstring/ a\ new line string' file1 The above code is not working even with the i option.... it shows sed grambled if '\' after new line string is not being used....after using no changes it is displaying..Pls help (5 Replies)
Discussion started by: bhavanabahety
5 Replies

3. Shell Programming and Scripting

sed adding a new line not working

The file which is used is /abc/apps/cobbbbbb/apps/abadv/binder/axyz.bnd /abc/apps/cobbbbbb/apps/abbrio/binder/na6115.bnd /abc/apps/cobbbbbb/apps/abbrio/binder/kc22.bnd /abc/apps/cobbbbbb/apps/abbrio/binder/tr4823.bnd /abc/apps/cobbbbbb/apps/abcmp/binder/cpc0105.bnd The commads which I ran... (3 Replies)
Discussion started by: bhavanabahety
3 Replies

4. UNIX for Dummies Questions & Answers

Sed: Adding new line after matching pattern

Hi I just wanted to add a new line after every matching pattern: The method doing this doesn't matter, however, I have been using sed and this is what I tried doing, knowing that I am a bit off: sed 'Wf a\'/n'/g' Basically, I want to add a new line after occurrence of Wf. After the line Wf... (5 Replies)
Discussion started by: MIA651
5 Replies

5. Shell Programming and Scripting

help with sed adding line to end of file

sed '$a\ hello' books hi i am trying to use sed to append hello to the end of the file books, but for some reason i can't get it work. It keeps sayin command garbled. Anyone know what I'm doing wrong. this is in a ksh script as well. (3 Replies)
Discussion started by: bjhum33
3 Replies

6. Shell Programming and Scripting

sed adding a blank line

I use the following as part of a script to correct for a faulty hostname file. # get the domain name read -r thehostname < /etc/hostname dom="$(echo $thehostname | cut -d'.' -f2)" numchar=${#dom} if then echo "It appears as though the hostname is not correctly set." echo "Hostname has... (5 Replies)
Discussion started by: bugeye
5 Replies

7. Shell Programming and Scripting

Need help in sed command (adding a blank line btw each block generated by pattern)

Hello friends, I have a C source code containing sql statements. I use the following sed command to print all the sql blocks in the source code.... sed -n "/exec sql/,/;/p" Sample.cpp The above sed command will print the sql blocks based on the pattern "exec sql" & ";"... (2 Replies)
Discussion started by: frozensmilz
2 Replies

8. Shell Programming and Scripting

SED - adding a new line after pattern

Hi, In files, I have a field Date Of Birth (DOB). After that line I need to add Date of Joining (DOJ) DOB:19-Apr-1981 needs to become DOB:19-Apr-1981 DOJ:20-Jun-2005 What can be a sed/perl line that can do it for me. Please note that DOB/DOJ I have in variables I am doing in a... (6 Replies)
Discussion started by: eagercyber
6 Replies

9. UNIX for Dummies Questions & Answers

sed - adding new line

I want to use sed to look for spaces in text and when find one move the next word to the next line. I used: sed 's/ /\n/g' out > new However when there is more than one space between two words it adds more lines between them. And I just want the words to be one under another. How can I... (2 Replies)
Discussion started by: sovixi
2 Replies

10. Solaris

adding a new line using sed command

I need to find text "A" and replace it with A B. The issue is that I need a new line between A and B. \n does not do the work. Any help would be much appreciated. Thanks, (2 Replies)
Discussion started by: ivesia
2 Replies
Login or Register to Ask a Question