Search Replace and Update a file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Search Replace and Update a file
# 1  
Old 11-04-2010
Search Replace and Update a file

hi,
I am stuck at a place. Please help me out. Here is what i need to do.
Search for a pattern in a propertyfile and change only at one occurance. I have these statements and assignment as a part of the propertyfile
Code:
 #Note : The Address should be replaced with actual address dynamically.
 ServerName=Address

Now i want to search the propertyfile, and change Address only in the assignment and not in the comment. Somethinglike
Code:
#Note : The Address should be replaced with actual address dynamically.
 ServerName=Actual Address

Here is what is my thought:
Code:
x=`grep ServerName Property.file |awk -F= '{print $2}'`
sed -i "s/$x/Actual Address/" Property.file

But the above code will replace "Address" with "Actual Address" even in the comment part.
how can i achieve this... Is there a way i can use sed inside awk, or pipe the result of awk to sed and change the property file
Any help is greately appriciated
# 2  
Old 11-04-2010
Try this,
Code:
 
perl -nle 's/(?<=ServerName\=)Address/Actual Address/; print $_;' inputfile

# 3  
Old 11-04-2010
by sed..
Code:
sed 's/\(ServerName=\).*/\1Actual Address/g' inputfile > outfile

# 4  
Old 11-04-2010
untested:
Code:
sed "s/=.*/=Actual Address/" file

# 5  
Old 11-04-2010
hi walid2mi,
As per your code, it will change all the occurances of any value after "=" with the new string..

Michaelrozar17,
I tested your code and it replaces the entire string with the new string.
before your code
Code:
ServerName=Address

After your code: i.e
Code:
sed 's/\(ServerName=\).*/Actual Address/g' Property.file

we get
Code:
Actual Address

instead of
Code:
ServerName=Actual Address

---------- Post updated at 03:22 PM ---------- Previous update was at 03:15 PM ----------

Hi michaelrozar17
Your code works fine, i had missed out the "1".
Can you please explain the code and how it works...

Thanks!!!
# 6  
Old 11-04-2010
Quote:
Originally Posted by raghu_shekar
Michaelrozar17,
I tested your code and it replaces the entire string with the new string.
before your code
Code:
ServerName=Address

After your code: i.e
[CODE]sed 's/\(ServerName=\).*/Actual Address/g' Property.file
hmm.. looks like you have missed the save part (\1) in the sed command. Pls take a look at the command again posted earlier
Code:
sed 's/\(ServerName=\).*/\1Actual Address/g' inputfile > outfile

# 7  
Old 11-04-2010
Hi michaelrozar17
I realised it and fixed it. but did not understand it... Smilie

Can you please explain what the code does and how. Actually i did not understand teh "\1".
Otherwise i think, the sed command looks for any string that appears after
"ServerName=" and replaces with the new string. but why \1 in front of the new string. I am not understanding that. I am not very familiar with sed
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Bash script - How to update header of scripts in one pass - multiline search/replace

Hello. A find command return a list of file. For each fileReplace the content starting with the first "§" (of two) ending with last "ɸ" (of two), regardless of the content ( five lines ) by the following content (exactly) : §2019_08_23§ # # ... (8 Replies)
Discussion started by: jcdole
8 Replies

2. Shell Programming and Scripting

Search and replace in file

hi All i'm new to shell/bash scripting and need help to write a script. question: i have a file of 100's of line, i need to replace all zeros in that file with its respective position, starting from 0 to 23 and remove the remaining sample file is like. Enter the date in the format... (12 Replies)
Discussion started by: sunnu2u86
12 Replies

3. Shell Programming and Scripting

Search and Replace in a new FILE.

Hi, more data.txt more srstring.sh input="data.txt" while IFS= read -r var do startdirectory=$loc search=$(echo $var | awk -F'=' '{print $1}') replace=$(echo $var | awk -F'=' '{print $2}') find "/tmp/config" -type f -exec grep -l "$search" {} + | while read file do if sed -e... (9 Replies)
Discussion started by: mohtashims
9 Replies

4. Shell Programming and Scripting

Nested search in a file and replace the inner search

Hi Team, I am new to unix, please help me in this. I have a file named properties. The content of the file is : ##Mobile props east.url=https://qa.east.corp.com/prop/end west.url=https://qa.west.corp.com/prop/end south.url=https://qa.south.corp.com/prop/end... (2 Replies)
Discussion started by: tolearn
2 Replies

5. Shell Programming and Scripting

Optimised way for search & replace a value on one line in a very huge file (File Size is 24 GB).

Hi Experts, I had to edit (a particular value) in header line of a very huge file so for that i wanted to search & replace a particular value on a file which was of 24 GB in Size. I managed to do it but it took long time to complete. Can anyone please tell me how can we do it in a optimised... (7 Replies)
Discussion started by: manishkomar007
7 Replies

6. Shell Programming and Scripting

Help on search and replace in a file

Hi all, The operating system is Solaris 10 I have example line here below I need to change the stat1 to stat2 using a shell script. search for space(" ") and replace with "\ " Stat1 --- /data/Sat Night Stay.txt Stat2 --- /data/Sat\ Night\ Stay.txt Thanks Firestar. (1 Reply)
Discussion started by: firestar
1 Replies

7. UNIX for Advanced & Expert Users

search and replace in a file

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' z="world" k="junk" b="world" z='perl' x='hai'... (3 Replies)
Discussion started by: ammu
3 Replies

8. Shell Programming and Scripting

search and replace in a file

Hi I have to search & replace column in the file.For example ..below iam having File1. in which 3rd column ...if it is A it should be 'ACT' if P it should be 'PAD' and if it ils D it should be 'DEC' I have to pass column no ,value and to be converted value as variables in to the... (2 Replies)
Discussion started by: satyam_sat
2 Replies

9. Shell Programming and Scripting

Search and replace in file..

Hi All, As I'm working on a Unix script... and the requirement is like, I need to search a word and replace it with the another word... for that i'm using SED command.... can anybody give any other alternate for this...? Thanks Amit (2 Replies)
Discussion started by: Amits
2 Replies

10. UNIX for Dummies Questions & Answers

Search and replace in file

Hi guys, I have one file with duplicate string. I want to replace all the occurance of that string with some other string. How can I do that in vi editor? Malay Maru (3 Replies)
Discussion started by: malaymaru
3 Replies
Login or Register to Ask a Question