>- чтобы не перечислять все файлы вручную можно искать их find'ом
>- чтобы не порождать лишний раз процесс (я про cat) можно указать
>sed'у файл
>- чтобы не создавать лишний файл можно воспользоваться ключиком -i
>
>Мой вариант:
>
>find <где искать> <условия> -print | while read FILE; do sed -i 's|текст1|текст2|g' "$FILE"; done
>
>
>P.S. 2allez: вы сами, видимо, тоже не полностью "Advanced Bash-scripting guide" осилили
>(иначе бы не плодили лишнего cat'а)... впрочем как и я ;)
>
(Устало) Да в курсе я, в курсе и про find, и про ключ "-i" у sed. Я выяснение этих
обстоятельств оставил автору темы в качестве, так сказать, домашнего задания. Выдал я ему
"рыбу", корявую, но работоспособную, а дальше уж пускай сам ее улучшает :-). Повторюсь:
учиться-то за него кто будет?
К слову, про find: почему, во-первых, вы посчитали, что у автора темы "куча файлов"
разбросана по разным каталогам (может, как раз в одном в кучу свалены ;-)), а во-вторых, с
чего вы взяли, что я ему предложил "перечислять все файлы вручную"? Я вообще-то
подразумевал указание маски :-).
Что же касается связки "cat | sed", то это уже въевшаяся намертво привычка: при работе в
командной строке мне так удобнее - быстрее менять аргументы у sed (или awk, или еще чего).
Насколько правильно это с точки зрения идеологии и правильно ли вообще, честно признаться,
фактор мало трогающий. И плодить "лишние" процессы мне совсем не боязно: не на PDP-11,
чай, работаем :-).