Replacing Strings in a File


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Replacing Strings in a File
# 1  
Old 03-20-2010
Replacing Strings in a File

I have a input file which looks like this:

Code:
Value1=""
Value2=""
Value3=""

ListOfValues=" $Value1 $Value2 $Value3"

I have another program which computes the values ($val1, $val2, $val3). So if $val1 is 'A', $val2 is 'B' and $val3 is 'C', I should edit the input file so it will look like:

Code:
Value1="A"
Value2="B"
Value3="C"

ListOfValues=" $Value1 $Value2 $Value3"

Note that Value1, Value2 and Value3 are fixed variable names.
# 2  
Old 03-20-2010
Maybe something like this ?

Code:
$ 
$ cat input.txt
Value1=""
Value2=""
Value3=""

ListOfValues=" $Value1 $Value2 $Value3"
$ 
$ echo $val1
A
$ echo $val2
B
$ echo $val3
C
$ 
$ # modify the file input.txt inline
$ perl -pi.bak -e "s/^Value1.*$/Value1=\"$val1\"/; s/^Value2.*$/Value2=\"$val2\"/; s/^Value3.*$/Value3=\"$val3\"/" input.txt
$ 
$ # check the contents
$ cat input.txt
Value1="A"
Value2="B"
Value3="C"

ListOfValues=" $Value1 $Value2 $Value3"
$ 
$

Quote:
Originally Posted by laiko
Note that ... are fixed variable names.
Sounds like an oxymoron. Smilie

tyler_durden
# 3  
Old 03-21-2010
Thanks Tyler, that really helped!

---------- Post updated at 12:29 PM ---------- Previous update was at 09:16 AM ----------

By the way, I noticed that it creates a BAK file. Is it possible not to? Thanks.
# 4  
Old 03-22-2010
Code:
val1=1;val2=2;val3=3
sed "s/Value1=.*/Value1=\"$val1\"/;s/Value2=.*/Value2=\"$val2\"/;s/Value3=.*/Value3=\"$val3\"/" file

# 5  
Old 03-22-2010
Thanks, Kurumi...
But I should have made my question clear.. What I meant was is it possible to avoid creation of an extra file? I just want to update the input.txt without the need to create an intermediate file..
Thanks in advance..
# 6  
Old 03-22-2010
Quote:
Originally Posted by laiko
Thanks Tyler, that really helped!
By the way, I noticed that it creates a BAK file. Is it possible not to? Thanks.
Replace:
Code:
perl -pi.bak

with:
Code:
perl -pi


Last edited by Franklin52; 03-22-2010 at 11:26 AM..
# 7  
Old 03-22-2010
Quote:
Originally Posted by laiko
Thanks, Kurumi...
But I should have made my question clear.. What I meant was is it possible to avoid creation of an extra file? I just want to update the input.txt without the need to create an intermediate file..
Thanks in advance..
use -i
Code:
 sed -i.bak [.....] file

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Replacing strings

Hello All, I have two files with delimited | file 1 : 1|2|3 11|12|13 22|23|24 and file 2 : 1|4|5|6 11|14|15|16 22|25|26 I want to replace the value '1' in file 2 with the values in file 1 '1|2|3' so the final output will look like 1|2|3|4|5|6 11|12|13|14|15|16 22|23|24|25|26 (3 Replies)
Discussion started by: ArunKumarM
3 Replies

2. Shell Programming and Scripting

Replacing strings in various files

i'm trying to figure out the easiest way to replace a string: pineapple pineapple-reg basketball basketball-reg football foot-reg-ball i'm storing the above in a file called wordstoreplace.txt for each line above, the word in the first column is to be replaced by the word in the second... (4 Replies)
Discussion started by: SkySmart
4 Replies

3. Shell Programming and Scripting

Finding/replacing strings in some files based on a file

Hi, We have a file (e.g. a .csv file, but could be any other format), with 2 columns: the old value and the new value. We need to modify all the files within the current directory (including subdirectories), so find and replace the contents found in the first column within the file, with the... (9 Replies)
Discussion started by: Talkabout
9 Replies

4. Shell Programming and Scripting

Replacing strings in a file from a def file

I am sure that there is something out there but before I learn Perl I thought I would ask. Here is what I need: I need a script or program to substitute string values in an xml file from a pair definition file replace_string -d <file containing string pairs> original_file_in new_file_out The... (3 Replies)
Discussion started by: danields2
3 Replies

5. Shell Programming and Scripting

Replacing strings

The code below gives the string "test1.txt" even though "tessdsdt" does not match "test1.txt". I would like to return "" if there is no match and return some kind of error that I can capture and decide what to do. echo test1.txt | awk -v src="tessdsdt" -v dst="test" '{sub(src,dst); print}' (16 Replies)
Discussion started by: kristinu
16 Replies

6. Shell Programming and Scripting

Replacing Strings in a File

I have a input file which looks like this: Value1="" Value2="" Value3="" ListOfValues=" $Value1 $Value2 $Value3" I have another program which computes the values ($val1, $val2, $val3). So if $val1 is 'A', $val2 is 'B' and $val3 is 'C', I should edit the input file so it will look like:... (0 Replies)
Discussion started by: laiko
0 Replies

7. Shell Programming and Scripting

Replacing strings

I am trying to take the two line version of this: mv myFile.txt myFile.txt.bak sed 's/foo/bar/g' myFile.txt.bak > myFile.txt and make it into a shell script with three parameters. First two parameters are the string and string replacement and the third is file. So far this is what I have... (5 Replies)
Discussion started by: gordonheimer
5 Replies

8. Shell Programming and Scripting

Replacing strings in csv file.

Hi, I have a problem.. 1) I have a file that contains the lines as below : VRF-TM_DummyLab/mse02.lab,mse02.lab,ge-2/0/7.222 VRF-EMS_HUAWEI_MSAN_208/mse01.lab,mse01.lab,xe-1/0/0.208 2) I need a method to read this file, line by line from :... (5 Replies)
Discussion started by: msafwan82
5 Replies

9. Shell Programming and Scripting

Replacing strings in a log file and saves as a new csv

Hello Im new here.I need to replace strings and change it into csv format, or at least saves the file as csv if that would work :p. Heres an example of my scenario 1) I have a log file, named abc.log, and its like a txt based file anyway, and the content looks like this ... (2 Replies)
Discussion started by: tententen
2 Replies

10. Shell Programming and Scripting

replacing strings with text from other file

Hi, Im trying to update some properties files with text from another file: file1 user=xyz file2 user= after script file2 user=xyz Im using this reading the $QUARTZURL,ETC... from quartz.properties: echo... (1 Reply)
Discussion started by: mc1392
1 Replies
Login or Register to Ask a Question