On Wed, Oct 8, 2008 at 9:49 PM, <[EMAIL PROTECTED]> wrote: > > Basically I want to find all files with a string (except binary) > and change it. let STR be the string I am looking for. NEW is new string.
Hmm, why not ditch find entirely, and just use grep? Something like: TFIL=/usr/tmp/dummy$$.txt grep -Ilr "$STR" * > $TFIL for fil in $( cat $TFIL); do sed -i "s/$STR/$NEW/g" $fil done Man grep says: "-I Process a binary file as if it did not contain matching data". Also -l gives you the filename and relative path. If $STR contains "/"s then you could use # instead. sed -i "s#$STR#$NEW#g" $fil I dont know how much the searched for string would change, but you could test if it contained "/" and then use sed with "#" instead. Also you might want to use "sed -ibak ..." instead since this will backup the unchanged file to filename.bak, should your substitution go awry. The letters after "i" specify the extension you want to use. Eric Sisolak
_______________________________________________ CentOS mailing list CentOS@centos.org http://lists.centos.org/mailman/listinfo/centos