go to a line and replace


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting go to a line and replace
# 1  
Old 06-15-2009
go to a line and replace

I have a file (say file1.txt) and I have to search for a line which has a text replace it and replace another string too in the same line.
Eg:
file1.txt
--------

x='hai' y='world' z='unix'
x='hai'
y='world'
x='hai' z='perl' y='world'

I have to go to line which has x='hai' and y='world' and replace
x='hai' to x='hello' and y='world' to y='universe' as below

modified file

x='hello' y='universe' z='unix'
x='hai'
y='world'
x='hello' z='perl' y='universe'

Can you please give me a command of shell program to do that

Thanks
Ammu
# 2  
Old 06-16-2009
Code:
 sed 's/\(.*\)\(hai\)\(.*\)\(world\)\(.*\)/\1hello\3universe\5/' yourfile

# 3  
Old 06-16-2009
Code:
awk 'BEGIN{
 q="\047"
 o1="x="q "hai"q
 o2="y="q"world"q
 c1="x="q "hello"q
 c2="y="q"universe"q
}
$0 ~ o1 && $0 ~ o2{
 sub(o1,c1)
 sub(o2,c2) 
}1' file

# 4  
Old 06-16-2009
Thanks

Last edited by ammu; 06-17-2009 at 12:02 AM..
# 5  
Old 06-17-2009
Quote:
Originally Posted by summer_cherry
Code:
 sed 's/\(.*\)\(hai\)\(.*\)\(world\)\(.*\)/\1hello\3universe\5/' yourfile

This code will only work when the 'x=hai' part is before 'y=universe'. When it is not the case, you may find the following code useful (here, as a script file)


Code:
    #!/bin/sed -f
    /x='hai'/ {
        s/y='world'/y='universe'/
        t a
        b
        :a
        s/x='hai'/x='hello'/
    }

# 6  
Old 06-17-2009
use this

Code:
nawk '(NF>1) {gsub(/hai/,"heloo",$0) ; gsub(/world/,"universe",$0) ; print }' file1.txt

BR
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Replace values in script reading line by line using sed

Hi all, Let's say I have a script calling for the two variables PA_VALUE and PB_VALUE. for pa in PA_VALUE blah blah do for pb in PB_VALUE blah blah do I have a text file with two columns of values for PA and PB. 14.5 16.7 7.8 9.5 5.6 3.6 etc etc I would like to read this... (7 Replies)
Discussion started by: crimsonengineer
7 Replies

2. Shell Programming and Scripting

sed command to replace a line in a file using line number from the output of a pipe.

Sed command to replace a line in a file using line number from the output of a pipe. Is it possible to replace a whole line piped from someother command into a file at paritcular line... here is some basic execution flow.. the line number is 412 lineNo=412 Now i have a line... (1 Reply)
Discussion started by: vivek d r
1 Replies

3. Shell Programming and Scripting

Multiple line search, replace second line, using awk or sed

All, I appreciate any help you can offer here as this is well beyond my grasp of awk/sed... I have an input file similar to: &LOG &LOG Part: "@DB/TC10000021855/--F" &LOG &LOG &LOG Part: "@DB/TC10000021852/--F" &LOG Cloning_Action: RETAIN &LOG Part: "@DB/TCCP000010713/--A" &LOG &LOG... (5 Replies)
Discussion started by: KarmaPoliceT2
5 Replies

4. Shell Programming and Scripting

sed command to replace a line at a specific line number with some other line

my requirement is, consider a file output cat output blah sdjfhjkd jsdfhjksdh sdfs 23423 sdfsdf sdf"sdfsdf"sdfsdf"""""dsf hellow there this doesnt look good et cetc etc etcetera i want to replace a line of line number 4 ("this doesnt look good") with some other line ... (3 Replies)
Discussion started by: vivek d r
3 Replies

5. Shell Programming and Scripting

I need to know how to replace a line after a pattern match with an empty line using SED

Hi How Are you? I am doing fine! I need to go now? I will see you tomorrow! Basically I need to replace the entire line containing "doing" with a blank line: I need to the following output: Hi How Are you? I need to go now? I will see you tomorrow! Thanks in advance.... (1 Reply)
Discussion started by: sags007_99
1 Replies

6. Emergency UNIX and Linux Support

Find a line using a condition and replace a string in that line

Hello, I have a 100 line code. I have given a sample of it below: ABC*654654*1*54.54*21.2*87*1*654654654654 CCC*FS*FS*SFD*DSF GGG*FGH*CGB*FBDFG*FGDG ABC*654654*1*57.84*45.4*88*2*6546546545 CCC*WSF*SG*FGH*GHJ ADA*AF*SFG*DFGH*FGH*FGTH I need to select the line starting with "ABC" its... (3 Replies)
Discussion started by: nithins007
3 Replies

7. Shell Programming and Scripting

Find a line using a condition and replace a string in that line

Hello, I have a 100 line code. I have given a sample of it below: ABC*654654*1*54.54*21.2*87*1*654654654654 CCC*FS*FS*SFD*DSF GGG*FGH*CGB*FBDFG*FGDG ABC*654654*1*57.84*45.4*88*2*6546546545 CCC*WSF*SG*FGH*GHJ ADA*AF*SFG*DFGH*FGH*FGTH I need to select the line starting with "ABC" its... (6 Replies)
Discussion started by: nithins007
6 Replies

8. Shell Programming and Scripting

sed to replace a line with modified line in same file

i have few lines in a file... i am reading them in a while loop so a particular line is held is $line1.. consider a modified line is held in $line2.... i want to replace $line1 with $line2 in the same file... how to do it..? i have come up till the below code sed "s/$line1/$line2/g" tmpfile.sql... (5 Replies)
Discussion started by: vivek d r
5 Replies

9. Solaris

Line too long error Replace string with new line line character

I get a file which has all its content in a single row. The file contains xml data containing 3000 records, but all in a single row, making it difficult for Unix to Process the file. I decided to insert a new line character at all occurrences of a particular string in this file (say replacing... (4 Replies)
Discussion started by: ducati
4 Replies

10. Shell Programming and Scripting

Need to replace the first word of a line if it occurs again in the next line(shell)

Hi folks, have a look into the attachment, i am not familiar with unix, can you please help me in this regard. thanks in advance, :) regards, Geeko (4 Replies)
Discussion started by: geeko
4 Replies
Login or Register to Ask a Question