search and replace the whole line


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting search and replace the whole line
# 1  
Old 09-25-2007
search and replace the whole line

Hi,

I have this line in a file called test.cfg

SOURCEFILE=/usr/platform/sun4v/driver/file.cfg

But i have many occurances of "SOURCEFILE" in test.cfg , i need to search only for this line and replace that line with

SOURCEFILE=/usr/platform/sun4x/driver/file.cfg

again there are many occurences of sun4v in that file but i need to replace only in this line. I tried grep for "SOURCEFILE="and using perl -pi -e but it replaces wherever it finds "sun4v" but i want only on this line.

Please help me.

Thanks.
# 2  
Old 09-25-2007
This is in the sed FAQ.

For GNU sed:

Code:
sed '0,/sun4v/s//sun4x/' filename

For other seds:

Code:
sed -e '1s/sun4v/sun4x/;t' -e '1,/sun4v/s//sun4x/' filename

# 3  
Old 09-25-2007
Quote:
Originally Posted by Jartan
Hi,

I have this line in a file called test.cfg

SOURCEFILE=/usr/platform/sun4v/driver/file.cfg

But i have many occurances of "SOURCEFILE" in test.cfg , i need to search only for this line and replace that line with

SOURCEFILE=/usr//driver/fileplatform/sun4x.cfg

again there are many occurences of sun4v in that file but i need to replace only in this line. I tried grep for "SOURCEFILE="and using perl -pi -e but it replaces wherever it finds "sun4v" but i want only on this line.

Please help me.

Thanks.
I am not sure I totally understand what you want to replace and how to find it but if you want to replace the whole line you can do:

sed 's/SOURCEFILE=\/usr\/platform\/sun4v\/driver\/file.cfg/SOURCEFILE=\/usr\/platform\/sun4x\/driver\/file.cfg/' test.cfg
# 4  
Old 09-25-2007
Hi radoulov,

I tried your option but again it does replaces all the occurences of sun4v but i want to look for that line and replace the occurence only in that line.

Hi borgeh

I tried the same option with perl -pi -e as

perl -pi -e 'SOURCEFILE=\/usr\/platform\/sun4v\/driver\/file.cfg/SOURCEFILE=\/usr\/platform\/sun4x\/driver\/file.cfg/g' test.cfg

but for some reasons it didnt work too. Actually iam executing this script as a finish script when the machine is jumpstarted.
Once the machine is build i checked the file it had no changes, but if i execute it manually it does change.I couldnt figure out whats the problem.
Please help me.

Thanks for your suggestions.
# 5  
Old 09-25-2007
Quote:
Originally Posted by Jartan
Hi radoulov,

I tried your option but again it does replaces all the occurences of sun4v but i want to look for that line and replace the occurence only in that line.
[...]
Could you post a sample from your file?
What's your OS and sed version?

Oops, sorry, I had to insert the hole pattern Smilie

Code:
sed -e '
1s#SOURCEFILE=/usr/platform/sun4v/driver/file.cfg#SOURCEFILE=/usr/platform/sun4x/driver/file.cfg#;t' -e\ 
'1,/SOURCEFILE=\/usr\/platform\/sun4v\/driver\/file.cfg/s//SOURCEFILE=\/usr\/platform\/sun4x\/driver\/file.cfg/
' filename

And, of course (from the FAQSmilie):
Quote:
If you know the pattern *won't* occur on the first line, omit the
first -e and the statement following it.

Last edited by radoulov; 09-25-2007 at 12:44 PM.. Reason: Correction
# 6  
Old 09-25-2007
Hi,

The file looks like

SUN4V_AVERAGE_MESSAGE_SIZE=128
SUN4V_MESSAGES_IN_INITIAL_RESPONSES=6500
SUN4V_ENFORCE_YIELD_NAMES=FALSE

Similar to the above lines there are lots of variable declarations with the variable SUN4V

#SOURCEFILE_LOCATION---------------------------

SOURCEFILE=/usr/platform/sun4v/driver/file.cfg


I want to search only for this occurence and replace the sun4v with sun4x variable but not anywhere else

Iam not sure how to check the veriosn of sed. iam using solaris 8.


Thanks a lot.
# 7  
Old 09-25-2007
Quote:
Originally Posted by Jartan
Hi,

The file looks like

SUN4V_AVERAGE_MESSAGE_SIZE=128
SUN4V_MESSAGES_IN_INITIAL_RESPONSES=6500
SUN4V_ENFORCE_YIELD_NAMES=FALSE

Similar to the above lines there are lots of variable declarations with the variable SUN4V

#SOURCEFILE_LOCATION---------------------------

SOURCEFILE=/usr/platform/sun4v/driver/file.cfg


I want to search only for this occurence and replace the sun4v with sun4x variable but not anywhere else

Iam not sure how to check the veriosn of sed. iam using solaris 8.


Thanks a lot.
This should be straightforward with my sed-suggestion above.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

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

2. Shell Programming and Scripting

Search text and replace line next to it

I have a file which requires modification via a shell script. Need to do the following: 0. take input from user for new text. 1. search for a keyword in the file. 2. replace the line next to this to this keyword with user supplied input. for e.g., my file has the following text: (some... (7 Replies)
Discussion started by: chingupt
7 Replies

3. UNIX for Advanced & Expert Users

Search and replace a line in perl

Hi All, i can replace a perticular value in sentence using perl. perl -pi -e 's/old/new/' sample.txt but i am not able to replace whole string by perl. file1 contains "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.147.109.211)(PORT=1526))(CONNECT_DATA=(SID= MWDBD22)))". i... (3 Replies)
Discussion started by: arindam guha
3 Replies

4. Shell Programming and Scripting

perl search and replace - search in first line and replance in 2nd line

Dear All, i want to search particular string and want to replance next line value. following is the test file. search string is tmp,??? ,10:1 "???" may contain any 3 character it should remain the same and next line replace with ,10:50 tmp,123 --- if match tmp,??? then... (3 Replies)
Discussion started by: arvindng
3 Replies

5. Shell Programming and Scripting

Multi-Line Search and Replace

There appears to be several threads that touch on what I'm trying to do, but nothing quite generic enough. What I need to do is search through many (poorly coded) HTML files and make changes. The catch is that my search string may be on one line or may be on several lines. For example there... (5 Replies)
Discussion started by: bisbell
5 Replies

6. UNIX for Advanced & Expert Users

Search Parameter in first line and replace next line content

Hi, I need help. I have XML file as below <a n="infoLevel"> <v s="true"/> </a> <a n="localAddr"> <v s="server.host.com"/> </a> <a n="ListenPort"> <v s="21111"/> </a> I need to find variable "ListenPort" in line and then replace... (4 Replies)
Discussion started by: rdtrivedi
4 Replies

7. Shell Programming and Scripting

search a pattern and replace the whole line

Hi All, I have a requirement where I have to find a pattern in a file and comment the whole line containing the search pattern. Any ideas in shell is welcome. Thanks in advance, Regards, Arun (3 Replies)
Discussion started by: arun_maffy
3 Replies

8. Shell Programming and Scripting

search for a string ,replace the whole line with new line

hai i am very new to unix. i am having two files like this. first.properties cache.ZA.TL_CCY=SELECT trim(CCY_CODE)||trim(COUNTRY_CODE)||trim(CITY_CODE) AS... (4 Replies)
Discussion started by: kkraja
4 Replies

9. Shell Programming and Scripting

Perl: Search for string on line then search and replace text

Hi All, I have a file that I need to be able to find a pattern match on a line, search that line for a text pattern, and replace that text. An example of 4 lines in my file is: 1. MatchText_randomNumberOfText moreData ReplaceMe moreData 2. MatchText_randomNumberOfText moreData moreData... (4 Replies)
Discussion started by: Crypto
4 Replies

10. Shell Programming and Scripting

sed search and replace in next line

Hello, I am hoping someone can provide some guidance on using context based search and replace to search for a pattern and then do a search and replace in the line that follows it. For example, I have a file that looks like this: <bold>bold text </italic> somecontent morecontent... (3 Replies)
Discussion started by: charissaf67
3 Replies
Login or Register to Ask a Question