ooptimum

Silver Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору Magi Цитата:| find: 100: unknown option | Разве я тебе писал, чтобы ты gsar свой в кавычки заключала? Посмотри внимательно, что я написал и что ты. Цитата:| sed при задании маски *.* фигачит все файлы | Аналогично. Разве я тебе писал использовать с sed'ом маску "*.*"? Хотя ты сама эту же самую маску используешь с gsar'ом. Идеология Unix: одна функция -- одна команда. Из вот таких вот функций-команд ты уже составляешь "программу", которая тебе нужна. В твоем случае задача легко раскладывается на следующие подзадачи: "найти" и "изменить все найденное". "изменить все найденное", в свою очередь, раскладывается на: "перебрать найденное" и "изменить". Теперь имеем такое сопоставление между подзадачами и командами, которые будем использовать: "найти" -- grep, "перебрать найденное" -- for и "изменить" -- sed. Собираем все вместе: Код:| for f in `grep -r "что ищем" *`; do sed -i 's:"что меняем":"на что меняем":' $f; done | Вот и все. Никаких дополнительных утилит, а только те, что уже есть в твоей системе. Никакие лишние файлы изменены не будут, тем более, что ты можешь задавать более точные критерии поиска grep'у. Добавлено В общем, у тебя не команда, а нонсенс какой-то получился. Ты пришешь: Цитата:| find . -type f -name * -exec "gsar -s"www.domain.ru" -r"domain.ru" *.shtml -o" {} \; | а надо было: Код:| find . -type f -name *.shtml -exec gsar -s"www.domain.ru" -r"domain.ru" {} -o \; | Насчет параметров gsar я не уверен. В частности, я не знаю, что такое "-o". Overwrite может быть? Не знаю... Добавлено Хм... Что-то мои поиски пока говорят, что gsar -- утилита под MS-DOS и выше. А тут FreeBSD... | Всего записей: 2898 | Зарегистр. 30-05-2002 | Отправлено: 15:48 30-05-2004 | Исправлено: ooptimum, 15:58 30-05-2004 |
|