Find and replace files in multiple folders


Login or Register for Dates, Times and to Reply

 
Thread Tools Search this Thread
# 1  
Find and replace files in multiple folders

Hi there,

I would like to write a script to automate the copy and renaming of files in multiple dir.

I have a generic file named s253e.prb and would like to copy this to multiple dir and rename it.

Example:


Dir is AL-M1 and the prb file name is AL-M1.prb. I would like to be able to copy the generic prb file to this dir and rename it AL-M1.prb while backing up the original.

I know that I can use the find command to complete this but I dont know where to start..

The Generic file is kept in the dir S25E3 dir and again we have multiple dirs:

AL-M1
AL-M2
CD-M1

etc

Any starters and help would be grateful to point me in the right dir...

I am using the ksh shell for this
# 2  
Do you have a list of the directories where the file is to be copied?

Here's my interpretation of your problem:

Code:
cd /parent/dir/to/all/work/dirs
for dir in AL-M1 AL-M2 CD-M1; do
   cp -p $dir/${dir}.prb $dir/${dir}.prb.backup
   cp -p /path/to/s253e.prb $dir/${dir}.prb
done

# 3  
There is 97 dirs that I need to copy and rename the file to. This is why I would like to try and automate the process as much as possible. Is there a way to use the code submitted above but to wildcard the dir input?
# 4  
Are all the 97 directories in the same path? And are there no other directories in that path? If yes, just do:

cd /parent/dir/to/all/work/dirs
for dir in *; do...
# 5  
All the directories are in the smae path ie:

/users/clyons/probes/

One other question (the script above works and thanks for it Smilie )

The s25e3.prb file is also contaained within this dir structure. How would I get the scrit to ignore this dir so that an error message is not created
(see attached screen capture)

Again thanks for all your help on this
Find and replace files in multiple folders-screen-capturejpg
# 6  
It isn't an error, just a warning, but you can ignore this directory. Just shove an if in there.

Code:
cd /parent/dir/to/all/work/dirs
for dir in *; do
   if [ "$dir" = "s25e3" ]; then   #you can replace this with whatever dir you want to ignore
      continue
   fi
   cp -p $dir/${dir}.prb $dir/${dir}.prb.backup
   cp /path/to/s253e.prb $dir/${dir}.prb
done

# 7  
Thanks...it works Smilie
Login or Register for Dates, Times and to Reply

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #53
Difficulty: Easy
Computer caches are typically built using EPROMS.
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Find and replace from multiple files

Hello everybody, I need your help. I have a php site that was expoited, the hacker has injected into many php files a phishing code that was discovered and removed in order to have again a clean code. Now we need to remove from many php files that malware. I need to create a script that find and... (2 Replies)
Discussion started by: ninocap
2 Replies

2. Shell Programming and Scripting

Find and replace in multiple files

Hi, I have php files in main dir and sub dir's as well. I need to find "new mysqli('localhost', 'System', 'xxxxxx', 'System', '3306');" and replace as "new mysqli('localhost', 'unx_sys', 'yyyy', 'unx_sys', '3306');" I tried like: sed 's/new mysqli\(*\)\;$/new... (1 Reply)
Discussion started by: ashokvpp
1 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. UNIX for Advanced & Expert Users

linux find and replace in multiple files

Is there a reason why all of these examples of linux find and replace in multiple files use find and grep to pipe into sed or perl. Why not just use sed or perl directly with something like this? sed -i 's/echo/burnbaby/g' booboo*... (2 Replies)
Discussion started by: cokedude
2 Replies

5. UNIX for Dummies Questions & Answers

how to find and replace strings in multiple files

Hi All, Iam new to unix, I need to find string and replace it in the file name. Like text_123_0.txt,text_123_1.txt,text_123_2.txt. I need to search 123 and replace it with 234 . Is there any unix command to replace them in single command since i have 5 directories. So i need to go each and every... (0 Replies)
Discussion started by: etldeveloper
0 Replies

6. Shell Programming and Scripting

Find files of type within folder copy multiple results to different folders

Ok question number two: I'd like to search a directory for multiple file types (rar, txt, deb) and depending on what's found, copy those files to folders named Rar, TextFiles, and Debs. I'm looking for speed here so the faster the script the better. I want it to be a function that I pass 1 argument... (4 Replies)
Discussion started by: DC Slick
4 Replies

7. Shell Programming and Scripting

Find & Replace string in multiple files & folders using perl

find . -type f -name "*.sql" -print|xargs perl -i -pe 's/pattern/replaced/g' this is simple logic to find and replace in multiple files & folders Hope this helps. Thanks Zaheer (0 Replies)
Discussion started by: Zaheer.mic
0 Replies

8. Shell Programming and Scripting

awk find and replace in multiple files

Hi I use the following code to replace . with N in my files and keep both versions. awk '{ gsub(/\./,"N"); print }' file_0001.txt > path/to/new/dir/file_0001.txt I need help on how to apply the code to 100 files instead of doing them one file at a time. The files are labeled... (7 Replies)
Discussion started by: jdhahbi
7 Replies

9. UNIX for Dummies Questions & Answers

Find and replace a string in multiple files

I used the following script cd pathname for y in `ls *`; do sed "s/ABCD/DCBA/g" $y > temp; mv temp $y; done and it worked fine for finding and replacing strings with names etc. in all files of the given path. I'm trying to replace a string which consists of path (location of file) ... (2 Replies)
Discussion started by: pharos467
2 Replies

10. Shell Programming and Scripting

Find and Replace in multiple files (Shell script)

hi guys, Suppose you have 100 files in a folder and you want to replace all occurances of a word say "ABCD" in those files with "DCBA", how would you do it ??? jatin (13 Replies)
Discussion started by: jatins_s
13 Replies

Featured Tech Videos