Неудивительно, что Perl отлично справляется с этой задачей в сочетании с приличной оболочкой:
for file in @filelist ; do
perl -p -i -e "s/pattern/result/g" $file
done
Это имеет тот же эффект (но более эффективный и без состояния гонки), что и:
for file in @filelist ; do
cat $file | sed "s/pattern/result/" > /tmp/newfile
mv /tmp/newfile $file
done