Hello!

On Mon, Jun 04, 2007 at 02:01:12PM +0200, Marc Espie wrote:
>[...]

>Don't use for loops with find results, they do not scale well.
>Also, beware of spaces in file.

>For this kind of thing, I generally use 'while read'

>find . -type f -name \*.htm -print|while read f; do sed s/old/new <"$f" 
>>"$f.new"; done

This isn't safe wrt newlines in file names, either.

A completely safe solution would be writing a small script:

#! /bin/sh
exec sed s/old/new/ < "$1" > "$1".new

and using find . -type f -name \*.htm -exec /path/to/script {} \;
or find . -type f -name \*.htm -print0 | xargs -0 -L 1 -r /path/to/script

Kind regards,

Hannah.

Reply via email to