On 2006.05.26 18:37 john hedge wrote:
I've been hitting my head all day over awk and
sed (grep?)!

My challenge is to search a directory of text files
for a string which I want to replace wherever it
occurs with a new string and save the file with
the changes in the same original file name.

Try a loop using grep with the -q option to locate the files with the requisite text then sed with the -i option to make the change.
Something like:

cd /path/to/directory/
for FILE in
do
        if grep -q "text to be replaced" "$FILE"
        then
sed -i 's/text to be replaced/replacement text/g' "$FILE"
        fi
done

Notes:
1. "grep -q" does not need to be in [test brackets] because it is a test in its own right 2. if you have filenames with spaces or funny characters it serves yourself right.

HTH,
Robert Thorsby
--
SLUG - Sydney Linux User's Group Mailing List - http://slug.org.au/
Subscription info and FAQs: http://slug.org.au/faq/mailinglists.html

Reply via email to