String Replacement Script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting String Replacement Script
# 1  
Old 04-25-2006
String Replacement Script

Okay, I have a script right now that is made to search through a file and replace certain strings with a new one. The format to execute is "/subst <replacethis> <withthis> <filename>" and it only updates the file IF changes are made (in order to preserve the time it was made/last modified). I have this working 100% right now, but the next step is to edit the script so that it is possible for users to do "/subst <replacethis> <withthis> <filename> <filename2> <filename3> <filenamex>" as high as they want. If anyone can point me in the right direction of methods to do this or simply fix it for me, I would be very greatful.

Here is my current script:
Code:
#!/bin/bash

replacethis=$1
withthis=$2
file=$3

sed -e "s+$replacethis+$withthis+g" $file > $file.bak

cmp $file $file.bak > /dev/null
if [ $? -eq 0 ]
then
  echo "Files are the same, nothing was replaced."
  rm $file.bak
else  
  mv $file.bak $file
fi

Thanks in advance for anyone that can help!
# 2  
Old 04-26-2006
Code:
#!/bin/bash

replacethis=$1
withthis=$2

shift 2

for file in $@
do
  sed -e "s+$replacethis+$withthis+g" $file > $file.bak

  cmp $file $file.bak > /dev/null
  if [ $? -eq 0 ]
   then
    echo "Files are the same, nothing was replaced."
     rm $file.bak
  else  
    mv $file.bak $file
  fi
done


Last edited by vino; 04-26-2006 at 07:19 AM..
# 3  
Old 04-26-2006
Thank you very much, works perfectly Smilie
# 4  
Old 11-15-2007
Lightbulb A new twist to this old post..

Hello All,

i have a problem which is exactly similar to this in all respects except that i have to do this for all files in the directory including sub-directories in which the pattern exists.

the code did work for me too, just it will be great if anybody can give a solution which works for all files in all the sub-directories as well.. this is becoz, there are too many files and i don't remember them all..

Will be very grateful to all of you..
# 5  
Old 11-15-2007
Code:
find directory -type f | xargs -n 1 thatotherscript replacethis withthis

# 6  
Old 11-15-2007
Tools taking it even further..

and if want to remove the case dependency of the string being searched?
# 7  
Old 11-15-2007
Quote:
Originally Posted by pranavagarwal
Hello All,

i have a problem which is exactly similar to this in all respects except that i have to do this for all files in the directory including sub-directories in which the pattern exists.

the code did work for me too, just it will be great if anybody can give a solution which works for all files in all the sub-directories as well.. this is becoz, there are too many files and i don't remember them all..

Will be very grateful to all of you..
pranavagarwal,
Please do not bump up your posts. Your other thread is https://www.unix.com/shell-programmin...ed-script.html
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Parallel replacement string

Hi, Using the following command, I can only get rid of the last extension from my input file name: parallel command '>' {.}.output ::: my.input.file The output file is "my.input.output" How can I get rid of the last two extensions of my input file name, so that end up with "my.output"?... (4 Replies)
Discussion started by: forU
4 Replies

2. Shell Programming and Scripting

String replacement

Hi, I have a text file where all records come in one line (single line file), each record starts with 'BUCH' and ends with '@&' and if data is not there we get space instead. between '@&' and next record there might be some spaces, now I want to remove those spaces between '@&' and 'BUCH'. ... (4 Replies)
Discussion started by: maks475
4 Replies

3. Shell Programming and Scripting

String replacement.

Dear Friends, I want to replace following line with given line. It should grep/search following string in a file (input.txt) M/M SRNO: 000M/6200-0362498 COSMETIC PRO MALE FEMALE Once found it should replace it to following string. T_DLHNNO: 000M/6200-0362498 ... (7 Replies)
Discussion started by: anushree.a
7 Replies

4. Shell Programming and Scripting

String replacement

Hi All, I have below file which has data in below format. #$ | AB_100 | AB_300 ()| AB_4 @*(% | AB-789 i want o/p as below format. | AB_100 | AB_300 | AB_4 | AB-789 So here there is no standard format. How we can achieve the same in unix ? Regards, (3 Replies)
Discussion started by: gander_ss
3 Replies

5. Shell Programming and Scripting

Issues with string replacement

I posted this issue a week or so ago and I still cant get the script to work. Here is what I have so far and what Im trying to do. #!/bin/ksh old="$1" new="$2" file=$3 grep $1 $3 > /dev/null if ;then cp $3 ${3}.bak sed "s/$1/$2/g" $3 > ${3}~ mv ${3}~ ${3} fithe script is... (5 Replies)
Discussion started by: gordonheimer
5 Replies

6. Shell Programming and Scripting

String replacement

I have one string string1=user/password:IP_ADDR:Directory I need to replace string1 value like store into string2 string2=user password:IP_ADDR:Directory i.e replace "/" character by '<space>' character But i wouldn't use any file in the meantime. Please help me......................... (6 Replies)
Discussion started by: mnmonu
6 Replies

7. Shell Programming and Scripting

String replacement

Hi I am new to shell scripting but i manage to do some simple things. I am trying to replace a string in one file. I am using sed to replace but it is not permanently writing to the file, rather it is temporary. I want to know whether is there any another method to replace a string in a file... (7 Replies)
Discussion started by: reddybs
7 Replies

8. Shell Programming and Scripting

Replacement of string

Hi I have a text file which contains the following. AAA,BBB,CCC,DDD AAA,BBB,CCC,DDD AAA,BBB,CCC,DDD How can I replace all CCC with 888, with other contents inside the file remain unchange? Please advice Desired output: AAA,BBB,888,DDD AAA,BBB,888,DDD AAA,BBB,888,DDD (1 Reply)
Discussion started by: c0384
1 Replies

9. Shell Programming and Scripting

Need shell/sed script for grep+string replacement

Hi, Let me explain the situation. There are many files in a directory and its sub-directories that conatin the string pattern "pa". I want to replace all such instances with the pattern "pranavagarwal" doing a grep "pa" `ls` does give me all the instances of the occurence of that... (3 Replies)
Discussion started by: pranavagarwal
3 Replies

10. Shell Programming and Scripting

sed problem - replacement string should be same length as matching string.

Hi guys, I hope you can help me with my problem. I have a text file that contains lines like this: 78 ANGELO -809.05 79 ANGELO2 -5,000.06 I need to find all occurences of amounts that are negative and replace them with x's 78 ANGELO xxxxxxx 79... (4 Replies)
Discussion started by: amangeles
4 Replies
Login or Register to Ask a Question