найдите и замените строку в наборе xml-файлов с помощью команд командной строки

StackOverflow https://stackoverflow.com/questions/1605610

  •  05-07-2019
  •  | 
  •  

Вопрос

У меня есть 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 вызовет проблемы, довольно мала ...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top