Всем привет,
Помогите довести до ума скрипт, который бы искал в исходной папке рекурсивно по всем подпакам строки с одним текстом и заменял этот текст на другой...
Вроде бы, в просто, find и sed все делают. Осталось только до ума довести.
Например, команда вида
find "корневая_папка_для_поиска" -name "*.xml" -print0 | xargs -0 sed -i -e "s/текст_для_поиска/заменяем_на/g"
все делает, но при этом копирует все исходные файлы - до вснесения в них изменений и кладет их рядом с добавлением -е в конец имени файла. А мне не нужны двойные файлы, зачем они?
Если же опцию е не применять, то не срабатывает, выходит ошибка типа
sed: 1: "/home/wins/skin/me ...": undefined label 'im/skin/media/xml/media.xml'
И еще, хотелось бы иметь лог, желательно такой: после того, как find нашел данные вхождения, записался бы лог где, в каких файлах что было найдено, после замены - соответственно что стало. Вроде как grep тут нужен, но чет я не соображу, как правильно и красиво все оформить.
Если у кого есть мысли, помогайте, плз.