![]() |
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.
|
|
google unix.com
|
|||||||
| Forums | Register | Forum Rules | Links | Albums | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| UNIX for Dummies Questions & Answers If you're not sure where to post a UNIX or Linux question, post it here. All UNIX and Linux newbies welcome !! |
More UNIX and Linux Forum Topics You Might Find Helpful
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| shell script to find and replace string in multiple files | pharos467 | Shell Programming and Scripting | 11 | 01-15-2009 11:40 AM |
| find and replace string in a directory files | koti_rama | Shell Programming and Scripting | 2 | 05-30-2008 03:48 AM |
| Find and Replace in multiple files (Shell script) | jatins_s | Shell Programming and Scripting | 13 | 11-05-2007 02:11 PM |
| Find and replace files in multiple folders | lodey | Shell Programming and Scripting | 6 | 09-28-2007 02:00 AM |
| How to replace a string in multiple textfiles? | dwidmer | UNIX for Dummies Questions & Answers | 1 | 11-21-2003 06:13 AM |
![]() |
|
|
LinkBack | Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
||||
|
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) say instead of ABCD i have to replace c:/mydocuments/pictures to d:/mypics/personal , as metacharacters wont be searched in unix this script is failing to replace the string which has a path in it. now my script is cd pathname for y in `ls *`; do sed "s/'c:/mydocuments/pictures'/'d:/mypics/personal'/g" $y > temp; mv temp $y; done i tired giving the path in single quotes and double quotes, but i see error sed: command garbled: s/'c:/mydocuments/pictures'/'d:/mypics/personal'/g And all the contents of the files in the path are erased. ![]() Is there any other way to work this out. Thanks |
|
||||
|
Quote:
Code:
for y in *
do
sed "s/ABCD/DCBA/g" "$y" >temp
mv temp "$y"
done
Code:
sed "s/c:\/mydocuments\/pictures/d:\/mypics\/personal\/g/" |
| Sponsored Links | ||
|
|
![]() |
| Bookmarks |
| Tags |
| perl, perl regex, regex, regular expressions, sed |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|