find and replace with SED


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting find and replace with SED
# 1  
Old 09-09-2010
find and replace with SED

Hello all

I have a file with a lot of records...Each one have a ID like this:

Code:
000000001 LDR   L -----nam--2200217Ia-45e0
000000001 891   
000000001 892   
000000001 893

and so on

then you have the second record:
Code:
000000002 LDR   L -----nam--2200208Ia-15e0
000000002 891   
000000002 892   
 000000002 893

I would like to change ther LDR value, in the exemple:

Code:
-----nam--2200217Ia-45e0

by this

Code:
^^^^^nas^a2^^^^^^^i^4500

So I use this command:

Code:
sed -i '/[0-9]\{9\} LDR/s/-----nam--2200205Ia-45e0/^^^^^nas^a2^^^^^^^i^4500/g' revistas1.mrk_aleph_sec.dat

The problem is : When the value change, the sed command do not found the match. Is there any method to get all the values in LDR field and replace it??
Thanks a lot
# 2  
Old 09-09-2010
Something like this perhaps?
Code:
sed '/LDR/s/-----nam--\(.\).\{9\}\(..\).\(.\)/^^^^^nas^a\1^^^^^^^i^\20\3/' infile

Output:
Code:
000000001 LDR   L -----nam--2200217Ia-45e0
000000001 891
000000001 892
000000001 893
000000002 LDR   L -----nam--2200208Ia-15e0
000000002 891
000000002 892
 000000002 893

or do you mean this:
Code:
sed '/LDR/s/-----nam--.\{14\}/^^^^^nas^a2^^^^^^^i^4500/' infile

output:
Code:
000000001 LDR   L ^^^^^nas^a2^^^^^^^i^4500
000000001 891
000000001 892
000000001 893
000000002 LDR   L ^^^^^nas^a2^^^^^^^i^4500
000000002 891
000000002 892
 000000002 893


Last edited by Scrutinizer; 09-09-2010 at 11:55 AM..
# 3  
Old 09-09-2010
Hello
any sed you want able to produce this:

start
Code:
000000001 LDR   L -----nam--2200217Ia-45e0
000000001 891
000000001 892
000000001 893
000000002 LDR   L -----nam--2200208Ia-15e0
000000002 891
000000002 892
000000002 893

end
Code:
000000001 LDR   L ^^^^^nas^a2^^^^^^^i^4500
000000001 891
000000001 892
000000001 893
000000002 LDR   L ^^^^^nas^a2^^^^^^^i^4500
000000002 891
000000002 892
000000002 893

The string at the end must be the same in all the records, but the string we have to change, is diferent in each record...Only the begining is the same

Code:
LDR   L -----nam--

Thanks
# 4  
Old 09-09-2010
I made a typo above I changed the second example...
# 5  
Old 09-09-2010
Code:
# sed '/[0-9]\{9\} LDR/s/-----nam--[0-9a-zA-Z]*-[0-9]*e0/^^^^^nas^a2^^^^^^^i^4500/' infile
000000001 LDR   L ^^^^^nas^a2^^^^^^^i^4500
000000001 891
000000001 892
000000001 893
000000002 LDR   L ^^^^^nas^a2^^^^^^^i^4500
000000002 891
000000002 892
000000002 893

# 6  
Old 09-09-2010
Yes
Fantastic that 's it.
So the .\{14\ is like a -----nam-- .*
Very nice
Thanks

---------- Post updated at 10:04 AM ---------- Previous update was at 10:03 AM ----------

Hello

this is other way to do the same??
[0-9a-zA-Z]*-[0-9]*e0
Looks good too, I'll try it.
Thanks a lot
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 with sed

Hi, I have a file such that: tart*)*98'bank'ksb64bank)(tart2d&f44bank I want to replace to: (only between tart and bank) tart*)*98'replaced'ksb64bank)(tart2d&f44replaced Thanks. (6 Replies)
Discussion started by: tara123
6 Replies

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

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

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