find "корневая_папка_для_поиска" -name "*.xml" -type f -exec sed -i -e 's/текст_для_поиска/заменяем_на/g' {} \;
Конечно же через find, как же еще...
в общем то, уже нашел все решения,с помощью конечно, ну и причины ошибок. Ошибка выше была только во freebsd, и решилась добавлением между параметрами i и e пары пустых двойных кавычек. Я сильно не вдавался, почему на фре так, заработало как надо и ладно. А под линуксом и так все нормально отрабатывало.
в принципе, даже скрипт небольшой помогли мне написать, может немного корявый, но работает быстро и лог пишет.
Код:
Код:
#!/bin/sh
LOGFILE=/home/typus/sed1.log
cp /dev/null $LOGFILE
for a in $( find "корневая_папка_для_поиска" -name "*.xml" ); do
sed -i "" -e "/ст/ sтекст_для_поиска//заменяем_на/gwsed.log" $a
c=`wc -l >$LOGFILE
fi
done
rm sed.log