найдите и замените строку в наборе xml-файлов с помощью команд командной строки
Вопрос
У меня есть 1000 файлов в каталоге.Я на машине solaris
Я хочу заменить строку " /example/test/temp " на "t0 " /testing/in/progress / во всех XML-файлах в моем каталоге.
любые подсказки будут замечательными.
Спасибо,
новичок
Решение
Как насчет (все в одной строке):
find . \( -type d ! -name . -prune \) -o \( -type f -name "*.xml" -print \) |
xargs perl -i.old -p -e 's-/example/test/temp-/testing/in/progress/-g'
Другие советы
Используйте sed(1).
В общем, безопаснее использовать процессор xslt для обработки XML-файлов, но в этом конкретном примере вероятность того, что какое-то "странное" представление XML вызовет проблемы, довольно мала ...
Не связан с StackOverflow