Замените значение атрибута Xml именем файла для всех Xml-файлов в каталоге и всех подкаталогах - PullRequest
0 голосов
/ 29 ноября 2018

есть вопрос для всех вас sed |найти |xmllint |Эксперты xargs:

Мне нужен скрипт для замены значения атрибута Xml someXmlTag для всех * .xml файлов в каталоге (и подкаталогах) на текущее имя файла (без расширения)

Назначение бонусов: мне нужен скрипт для замены значения Xml-Tag на первую часть имени файла (до разделителя) и Xml-Tag на вторую часть имени файла (после разделителя) для всех файлов * .xmlв каталоге (и подкаталогах)

Заранее благодарим за помощь!

С уважением,

Себастьян

1 Ответ

0 голосов
/ 29 ноября 2018

Вы не предоставили никаких примеров, тест-кейсов.В любом случае команда find / xargs / sed найдет все файлы с суффиксом .xml в текущем каталоге и заменит их внутри <xmlTag> или </xmlTag> на <newTag> или </newTag>:

find ./ -type f -name "*.xml" -print0 | xargs -0 sed -i 's/\(<\/\{,1\}\)xmlTag/\1newTag/g'

Test:

$ cat file.xml
<xmlTag>
</xmlTag>
<xmlTag>Whats up</xmlTag>

$ sed 's/\(<\/\{,1\}\)xmlTag/\1newTag/g' file.xml
<newTag>
</newTag>
<newTag>Whats up</newTag>
...