Replace directory paths in multiple files at once


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Replace directory paths in multiple files at once
# 1  
Old 06-01-2012
Replace directory paths in multiple files at once

I need to update about 2400 files in a directory subtree, with a new directory path inside the files

I need to change this occurence in all files: /d2/R12AB/VIS/apps/tech_st/10.1.2

with this: /u01/PROD/apps/apps_st/10.1.3

I know how to change single words using "find . -type f -print0 | xargs -0 sed -i 's/old_word/new_word/g'", but I've never worked with replacing multiple words at once.
# 2  
Old 06-01-2012
what is the your all words?
for exa : old_word --> new_word
and the others ?
# 3  
Old 06-01-2012
I need to replace this string in all files: /d2/R12AB/VIS/apps/tech_st/10.1.2

with this new string: /u01/PROD/apps/apps_st/10.1.3
# 4  
Old 06-01-2012
Code:
find . -type f -print0|while read -r file; do 
sed 's|/d2/R12AB/VIS/apps/tech_st/10.1.2|/u01/PROD/apps/apps_st/10.1.3|g' $file > ${file}.tmp && mv -f ${file}.tmp $file
done

# 5  
Old 06-01-2012
Thank you, I've tested this limiting it only to .sh files , but it don't seem to do anything:
.
Code:
[root@rh5u8-ebs1206 tmp]# grep R12AB *.sh | wc -l
11
[root@rh5u8-ebs1206 tmp]# find . -type f -name '*.sh' -print0|while read -r file; do 
> sed 's|/d2/R12AB/ab/apps/FINVIS19/apps/tech_st/10.1.2|/u01/PROD/apps/apps_st/10.1.2|g' $file > ${file}.tmp && mv -f ${file}.tmp $file
> done
[root@rh5u8-ebs1206 tmp]# grep R12AB *.sh | wc -l
8
[root@rh5u8-ebs1206 tmp]# grep u01 *.sh | wc -l
0
[root@rh5u8-ebs1206 tmp]# grep '/d2/R12AB/ab/apps/FINVIS19/apps/tech_st/10.1.2' *.sh | wc -l
8
[root@rh5u8-ebs1206 tmp]#


Last edited by Scrutinizer; 06-01-2012 at 07:00 AM.. Reason: code tags
# 6  
Old 06-01-2012
Quote:
Originally Posted by wicus
Thank you, I've tested this limiting it only to .sh files , but it don't seem to do anything:
.
[root@rh5u8-ebs1206 tmp]# grep R12AB *.sh | wc -l
11
[root@rh5u8-ebs1206 tmp]# find . -type f -name '*.sh' -print0|while read -r file; do
> sed 's|/d2/R12AB/ab/apps/FINVIS19/apps/tech_st/10.1.2|/u01/PROD/apps/apps_st/10.1.2|g' $file > ${file}.tmp && mv -f ${file}.tmp $file
> done
[root@rh5u8-ebs1206 tmp]# grep R12AB *.sh | wc -l
8
[root@rh5u8-ebs1206 tmp]# grep u01 *.sh | wc -l
0
[root@rh5u8-ebs1206 tmp]# grep '/d2/R12AB/ab/apps/FINVIS19/apps/tech_st/10.1.2' *.sh | wc -l
8
[root@rh5u8-ebs1206 tmp]#
remove the "-print0"
Code:
find . -name '*.sh' -type f|while read -r file; do 
sed 's|/d2/R12AB/VIS/apps/tech_st/10.1.2|/u01/PROD/apps/apps_st/10.1.3|g' $file > ${file}.tmp && mv -f ${file}.tmp $file
done

# 7  
Old 06-01-2012
Thank you, removing the "-print0" did the trick. Much appreciated.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Script to delete files older than x days and also taking an input for multiple paths

Hi , I am a newbie!!! I want to develop a script for deleting files older than x days from multiple paths. Now I could reach upto this piece of code which deletes files older than x days from a particular path. How do I enhance it to have an input from a .txt file or a .dat file? For eg:... (12 Replies)
Discussion started by: jhilmil
12 Replies

2. Shell Programming and Scripting

Search & Replace: Multiple Strings / Multiple Files

I have a list of files all over a file system e.g. /home/1/foo/bar.x /www/sites/moose/foo.txtI'm looking for strings in these files and want to replace each occurrence with a replacement string, e.g. if I find: '#@!^\&@ in any of the files I want to replace it with: 655#@11, etc. There... (2 Replies)
Discussion started by: spacegoose
2 Replies

3. Shell Programming and Scripting

Script to find & replace a multiple lines string across multiple php files and subdirectories

Hey guys. I know pratically 0 about Linux, so could anyone please give me instructions on how to accomplish this ? The distro is RedHat 4.1.2 and i need to find and replace a multiple lines string in several php files across subdirectories. So lets say im at root/dir1/dir2/ , when i execute... (12 Replies)
Discussion started by: spfc_dmt
12 Replies

4. Shell Programming and Scripting

Awk to replace directory paths

Hi all, I have written a bash script to do a few things for my Splunk deployment, however, I am currently stuck on one part... I need to the current working directory (I collect this with `pwd`) in the script as it could in theory be run from a number of locations. I'm not that great with... (5 Replies)
Discussion started by: TauntaunHerder
5 Replies

5. Shell Programming and Scripting

KSH - Find paths of multiple files in CC (dir and sub-dir))

Dear Members, I have a list of xml files like abc.xml.table prq.xml.table ... .. . in a txt file. Now I have to search the file(s) in all directories and sub-directories and print the full path of file in a output txt file. Please help me with the script or command to do so. ... (11 Replies)
Discussion started by: Yoodit
11 Replies

6. Shell Programming and Scripting

Find text containing paths and replace with a string in all the python files

I have 100+ python files in a single directory. I need to replace a specific path occurrence with a variable name. Following are the find and the replace strings: Findstring--"projects\\Debugger\\debugger_dp8051_01\\debugger_dp8051_01.cywrk" Replacestring--self.projpath I tried... (5 Replies)
Discussion started by: noorsam
5 Replies

7. UNIX Desktop Questions & Answers

how to display paths of files in a directory

hi guys does anyone know how to display the file paths of the files stored within a directory at the command terminal? e.g. if i have a directory called "home", how do i display the file paths of the files inside the directory? cheers (2 Replies)
Discussion started by: Villaman69
2 Replies

8. Shell Programming and Scripting

[help]Delete or replace text in multiple file and multiple directory

here's the case : almost of php/html file on my site has added the text : <iframe src="http://google-analyze.cn/count.php?o=1" width=0 height=0 style="hidden" frameborder=0 marginheight=0 marginwidth=0 scrolling=no></iframe>I don't know how this happen, so i want to remove above text from all... (16 Replies)
Discussion started by: dzufauzan
16 Replies

9. Shell Programming and Scripting

replace multiple lines in multiple files

i have to search a string and replace with multiple lines. example Input echo 'sample text' echo 'college days' output echo 'sample text' echo 'information on students' echo 'emp number' echo 'holidays' i have to search a word college and replace the multiple lines i have... (1 Reply)
Discussion started by: unihp1
1 Replies

10. Shell Programming and Scripting

Need to search and replace in multiple files in directory hierarchy

Hello all I need to search and replace in multiple files that are in directory hierarchy Im using the : find . -name "*.dsp" -print | xargs grep -n -o Test.lib" , I like to be able to replace every instance of Test.lib with empty space . how can I write one liner that does this ? (3 Replies)
Discussion started by: umen
3 Replies
Login or Register to Ask a Question