Replacing strings


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Replacing strings
# 1  
Old 07-07-2009
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 but it still isnt working.

#!/bin/csh

mv $3 $3.bak
sed 's/$1/$2/g' $3.bak > $3

---------- Post updated at 06:06 PM ---------- Previous update was at 05:12 PM ----------

I changed it to

#!/bin/csh

set old_pattern=$1
set new_pattern=$2
set file_name=$3

mv $file_name $file_name.bak
sed -e "s/$old_pattern/$new_pattern/g" $file_name.bak > $file_name


I am assuming I am having trouble with strings with spaces but I still cant get it to work
# 2  
Old 07-07-2009
I never use C Shell, but it looks generally OK to me.

If you think you're having trouble with spaces, try using quotes:

Code:
set old_pattern="$1"
set new_pattern="$2"

If your old_pattern or new_pattern use slashes (/) then you should change your sed expression to use something else

Code:
sed -e "s/$old_pattern/$new_pattern/g" $file_name.bak > $file_name
to
sed -e "s+$old_pattern+$new_pattern+g" $file_name.bak > $file_name

You should also test if the three arguments you expect are actually given.

But as you didn't post the error message, or say what's not working about it (i.e. what it does output), it's hard to say.
# 3  
Old 07-07-2009
quotations worked, thank you

any idea how to apply this to any number of file?
# 4  
Old 07-07-2009
One possibility:

If this is in a script called my_script, then

Code:
ls -1 *.txt | xargs -I{} ./my_script old_string new_string {}

# 5  
Old 07-07-2009
thank you, but what if like the first script there is more than one file as a parameter, say three or four files to change strings in.
# 6  
Old 07-07-2009
You can call my_script as many times as you need to.
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

Numbering, copying and replacing strings

hello everybody there, I'm a new bash shell programmer and I'm dealing with a problem. To start, I have a file with a number of string lines which may contain a particular string or not. I have to write a code that identifies the line containing one particular string and keeps it, but also writes... (10 Replies)
Discussion started by: leaf
10 Replies

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

5. Shell Programming and Scripting

Replacing strings in perl script

HI all, These are examples of the original value from a variable $abc can be FastEthernet1/0 GigabitEthernet3/1 Serial1/0 If $abc is FastEthernet*/* (where * can be any number), replace $abc value to fa*/* (same number as the original value). GigabitEthernet becomes ga*/* and Serial... (2 Replies)
Discussion started by: tententen
2 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:... (6 Replies)
Discussion started by: laiko
6 Replies

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

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 with newlines : sed

Hi everyone, Since the previous time I received help from unix.com I have been encouraged to learn more. going through 1 of the articles(View Article) on sed I found, it pointed an interesting situation. Suppose the text is : Romeo and Ethel the Dancer Moves Audience to Tears. I... (3 Replies)
Discussion started by: hkansal
3 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