xargs +sed question

Amadeus W. M. amadeus84 at verizon.net
Thu Dec 7 02:31:56 UTC 2006


I'd normally ask this in comp.os.linux.misc, but my news server is not
responding, so I'm asking it here.

I have a bunch of files in a directory tree in which I want to replace a
string A with string B. I'm trying to do this with xargs like so:

grep -ri -l A . | xargs sed -e 's/A/B/g'

and this does what I want, except, of course, that it outputs everything
to stdout. Is there any way to pass the name of each input file as
output for sed? 



Of course, I an do

for file in `grep -ri -l A .`
do
cat $file | sed -e 's/A/B/g' > tmp
/bin/mv tmp $file
done

but the xargs method seems more elegant if there was a way to specify
separate output files. Suggestions?

Thanks!




More information about the users mailing list