Find and Replace with sed


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Find and Replace with sed
# 1  
Old 01-31-2013
Find and Replace with sed

Hi,

I have a file such that:

Code:
tart*)*98'bank'ksb64bank)(tart2d&f44bank

I want to replace to: (only between tart and bank)

Code:
tart*)*98'replaced'ksb64bank)(tart2d&f44replaced

Thanks.
# 2  
Old 01-31-2013
Please show exact desired output and clarify your request. There are 2 tarts and 3 banks?
# 3  
Old 01-31-2013
Yes it's correct. The process would be done only between a tart and bank.
not for other bank.

Code:
tart*)*98'replaced'ksb64no replace)(tart2d&f44replaced

# 4  
Old 01-31-2013
The last bank is not between tart and bank so what is the crireria to replace it?
# 5  
Old 01-31-2013
Hi,
it is also the same. Search tart*.*bank and change bank to "replaced"

Code:
tart*)*98'bank'ksb64bank)(tart2d&f44bank


Last edited by tara123; 01-31-2013 at 07:34 PM..
# 6  
Old 01-31-2013
Try:
Code:
perl -pe 's/(tart.*?)bank/$1replaced/g'

Code:
sed 's/bank/§/g; s/\(tart[^§]*\)§/\1replaced/g; s/§/bank/g'


Last edited by Scrutinizer; 01-31-2013 at 09:32 PM..
# 7  
Old 01-31-2013
Quote:
Originally Posted by tara123
Hi,
it is also the same. Search tart*.*bank and change bank to "replaced"

Code:
tart*)*98'bank'ksb64bank)(tart2d&f44bank

That is not the way regular expressions work in sed (or awk, ed, ex, or vi). The t*.* in tart*.*bank matches everything in red in the line:
Code:
tart*)*98'bank'ksb64bank)(tart2d&f44bank

Note that the RE you provided will also match tarxyzbank (with no "t" after "tar").

The following sed script seems to do what you want:
Code:
sed 's/bank/^Gbank/g
s/\(tart[^^G]*\)^Gbank/\1replaced/g
s/^G//g' input

Note that each time the sequence^Gappears in this script it needs to be replaced by a single character that can never occur in your input. I used an alert character (CTRL-G in ASCII), but you can use whatever you want in the above sed commands except for the <asterisk> (*), <backslash> (\), <circumflex> (^), <dollar-sign> ($), <left-square-bracket> ([), <period> (.) and <slash> (/) characters.
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 find 2 strings and replace one

Hi Everyone, I want to find this 2 strings in a single line a file and replace the second string. this is the line i need to find <param name="user" value="CORE_BI"/> find user and CORE_BI and replace only CORE_BI with admin so finally the line should look like this. <param... (5 Replies)
Discussion started by: shajay12
5 Replies

2. Shell Programming and Scripting

Find and replace using sed

Hi All, I have a file as shown below: myFile.dat #---------------------------------------------------------- dataFile { Name shiva; location Delhi; travelID IDNumber; } 4 ( 560065 700007 100001 200002 )... (8 Replies)
Discussion started by: linuxUser_
8 Replies

3. Shell Programming and Scripting

Find and replace using sed

File 1,2,33,C,B 3,5,66,K,R 1,2,33,H,M 3,5,66,M,C 6,9,66,J,F I will use the below command to find and replace in sed, where I'm using variable to find pattern. while read line do sed 's/$line/77/' file done<inputfile But here I need to find value in column 3 and... (26 Replies)
Discussion started by: Roozo
26 Replies

4. Shell Programming and Scripting

Find and replace using sed command

The content of the file filea.txt is as follows. --------- case $HOSTNAME in aaa) DS_PARM_VALUE_SET=vsDev APT_Configuration_File=/appl/infoserver/Server/Configurations/2node.apt ;; bbb) DS_PARM_VALUE_SET=vsQA... (3 Replies)
Discussion started by: kmanivan82
3 Replies

5. Shell Programming and Scripting

find and replace using SED

I need to do a find and replace. I tried below logic but getting warnings Could you please help? a=`echo "<!DOCTYPE aaaaa bbbbb \"sample.dtd\">"` b="<!DOCTYPE aaaaa bbbbb \" /a/b/c/datain/d_k/sample.dtd \">" echo $a | sed -e "s/$a/$b/" > c.txt getting the following error sed:... (1 Reply)
Discussion started by: kmanivan82
1 Replies

6. Shell Programming and Scripting

find and replace with sed

Hi, I have two files file1 :> val="10" port="localhost:8080" httpadd="http:\\192.168.0.239" file2 :> val=${val} port=${port} httpadd=${httpadd} fileloc=${fileloc} file3(or file2) should have following output(input from fileone) file3 (8 Replies)
Discussion started by: nitin.pathak
8 Replies

7. Shell Programming and Scripting

find and replace with SED

Hello all I have a file with a lot of records...Each one have a ID like this: 000000001 LDR L -----nam--2200217Ia-45e0 000000001 891 000000001 892 000000001 893 and so on then you have the second record: 000000002 LDR L -----nam--2200208Ia-15e0 000000002 891 000000002... (5 Replies)
Discussion started by: ldiaz2106
5 Replies

8. Shell Programming and Scripting

Help with find and Replace using sed

I have to update a paramater (dateMemLimit) present in a file, with a date (YYYYMMDD) equal to 5 days before the sysdate. The parameter will be in the following format. dateMemLimit = 20091201 Please note the blank spaces present between 'dateMemLimit' &'=' and between '='... (4 Replies)
Discussion started by: rajesh8s
4 Replies

9. Shell Programming and Scripting

find and replace using sed

Hello Everybody, I am doing something like this on Redhat Linux h=`cut -d"." -f4 file1` s=`cut -d"." -f4 file2` sed "s/$h/$s/g" file3 but this is not working but if giving constant value its working, for ex. sed "s/93/$h/g" file3 help... Thanks for looking into my question (2 Replies)
Discussion started by: arvind_aks15
2 Replies

10. Shell Programming and Scripting

Find a pattern and replace using sed.

Hi I need to help on finding the below pattern using sed <b><a href="/home/document.do?assetkey=x-y-abcde-1&searchclause=photo"> and replace as below in the same line on the index file. <b><a href="/abcde.html"> thx in advance. Mari (5 Replies)
Discussion started by: maridhasan
5 Replies
Login or Register to Ask a Question