How to replace multiple file content?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to replace multiple file content?
# 1  
Old 09-13-2013
How to replace multiple file content?

Hi Gurus,

I need replace multiple files content.

the file name pattern likes
Code:
currentfile_code_*

the content pattern in the file like
Code:
text=value

I need replace the content as
Code:
text=abcde

Thanks in advance
# 2  
Old 09-13-2013
I'm always leery of altering your originals, so back them up first:
Code:
# Create backup in case the replacement goes wrong!  ESSENTIAL!
tar -cf backup.tar currentfile_code_*

for FILE in currentfile_code_*
do
        sed 's#text=.*#text=newvalue#' < "$FILE" > /tmp/$$
        cat /tmp/$$ > "$FILE"
done

rm -f /tmp/$$

This User Gave Thanks to Corona688 For This Post:
# 3  
Old 09-13-2013
Hello,

If your sed support -i option (like gnu sed) , you can do it:
Code:
sed -i'.bak' 's#text=.*#text=newvalue#' currentfile_code_*

Regards.
# 4  
Old 09-13-2013
Quote:
Originally Posted by Corona688
I'm always leery of altering your originals, so back them up first:
Code:
# Create backup in case the replacement goes wrong!  ESSENTIAL!
tar -cf backup.tar currentfile_code_*

for FILE in currentfile_code_*
do
        sed 's#text=.*#text=newvalue#' < "$FILE" > /tmp/$$
        cat /tmp/$$ > "$FILE"
done

rm -f /tmp/$$

This script works, would you please tell me what the $$ mean?
# 5  
Old 09-13-2013
It's the shell's process id:

Code:
$ echo $$

30084

$ ps aux | grep '[3]0084'

user    30084  0.0  0.0   3156  1672 pts/1    Ss   09:38   0:00 -bash

$

I am just using it as a convenient, unique temporary file name.
This User Gave Thanks to Corona688 For This Post:
# 6  
Old 09-13-2013
Quote:
Originally Posted by Corona688
It's the shell's process id:

Code:
$ echo $$

30084

$ ps aux | grep '[3]0084'

user    30084  0.0  0.0   3156  1672 pts/1    Ss   09:38   0:00 -bash

$

I am just using it as a convenient, unique temporary file name.
Thanks for you quick reply.
I have one more question.

I have two values need to be replace. like:
Code:
abcd = 123
cdef = 456

I want to replace with
Code:
abcd = xxx
cdef = yyy

in current script, it only change one, would you please take a look.

thanks.
# 7  
Old 09-13-2013
Code:
# Create backup in case the replacement goes wrong!  ESSENTIAL!
tar -cf backup.tar currentfile_code_*

for FILE in currentfile_code_*
do
        sed 's#text=.*#text=newvalue#;s#text2=.*#text2=newvalue2#' < "$FILE" > /tmp/$$
        cat /tmp/$$ > "$FILE"
done

rm -f /tmp/$$

This User Gave Thanks to Corona688 For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Replace content from a file and save

Hi, Right now there is a file called 'qm.ini' which is owned by mqm:mqm and I am trying to replace a line from this file with something else and save. I am using the below perl command to replace and save within a shell script with a different user called 'mqadm' which is also part of mqm... (1 Reply)
Discussion started by: bdpl
1 Replies

2. Shell Programming and Scripting

Replace file name with Space as content

Hi, I am having a files in my directory like this: 2014 1049_file1.txt 2014 1050_file2.txt 2014 1110_file3.txt 2014 1145_file4.txt 2014 2049_file5.txt I need to replace the above file names like this without changing the content of filename: file1.txt file2.txt file3.txt... (10 Replies)
Discussion started by: rohit_shinez
10 Replies

3. Shell Programming and Scripting

Sed: replace content from file with the content from file

Hi, I am having trouble while using 'sed' with reading files. Please help. I have 3 files. File A, file B and file C. I want to find content of file B in file A and replace it by content in file C. Thanks a lot!! Here is a sample of my question. e.g. (file A: a.txt; file B: b.txt; file... (3 Replies)
Discussion started by: dirkaulo
3 Replies

4. Shell Programming and Scripting

Replace the content of file with incremented value

I have a file myfile with only one value 1000.I am using it in a shell script.Each time i run the script,the file shud get incremented by 1. I have used the below code for incrementing the value- curr=`cat myfile` echo $curr curr=`expr $curr + 1` But i am not sure how to save this replaced... (2 Replies)
Discussion started by: saga20
2 Replies

5. Shell Programming and Scripting

Need to replace particular content in a xml file

Hi, My requirement is to find a text and replace it with another in a XML file. I am new to Unix,Please provide some suggestion to achieve. Find: <Style ss:ID="ColumnHeader1"> Replace with: <Style ss:ID="ColumnHeader1"> <Borders> <Border ss:Position="Bottom"... (4 Replies)
Discussion started by: cnraja
4 Replies

6. Shell Programming and Scripting

Replace string by file content

hi I have template file my.tpl: bla-bla-bla <link href="style.css" type="text/css"> bla-bla-bla and style.css : body{margin: 0px;} I want to get in result one file: bla-bla-bla <script>body{margin: 0px;}</script> bla-bla-bla I tryed to used SED: sed '/<link .*href=\"(*)*\"... (6 Replies)
Discussion started by: dim_nsk
6 Replies

7. Shell Programming and Scripting

Replace file content after checking value

Our system is receiving one feed from the third party. One of the field in the flat file is ID which id from position 19 to 27. In some cases this ID is coming as 9 zeros (000000000) or 1 right padded zero. ( 0) For these specific records I want to replace fthis field with blank... (3 Replies)
Discussion started by: varunrbs
3 Replies

8. Shell Programming and Scripting

How to replace some content of a file and write with a new name

Hi I have a control file which looks like this LOAD DATA INFILE '/home/scott/XXX.dat' PRESERVE BLANKS ............. ............. how can i change the content of this file and replace the file in the second line with anothe file name and write it back with another name to the disk? ... (5 Replies)
Discussion started by: mwrg
5 Replies

9. Shell Programming and Scripting

SED to replace file content

Hi, I want to replace _F* by _F in a xml file. what is the sed command. I have tried sed "s/_F$/_F/g" or sed "s/_F*/_F/g" , but it does not work. thx file content <TAG>KC_FOU</TAG> <TAG>KC_FABC</TAG> <TAG>KC_FABCDG</TAG> desire output <TAG>KC_F</TAG> <TAG>KC_F</TAG> <TAG>KC_F</TAG> (6 Replies)
Discussion started by: godfreyyip
6 Replies

10. Shell Programming and Scripting

replace a string with content from another file

Hi, I'm a newbi in shell script. Here what I want to do: FileA: bor bor bor xxxx bib bib bi FileB: something something something I want to replace string "xxxx" in FileA with contents of FileB. i tried with sed: fileb=`cat FileB` reg=xxxx file=FileA (4 Replies)
Discussion started by: afatguy
4 Replies
Login or Register to Ask a Question