Как заменить один параметр в файле XML на sed? - PullRequest
0 голосов
/ 29 апреля 2020

Как часть крошечного сценария автоматизации, который я пытаюсь создать, у меня есть один раздел, который отфильтровывает ответ от вызова API и выводит число, например 12345, со следующим:

tidy -xml -i - responseformatting/response.txt > response_tidied.txt | grep externalId response_tidied.txt |  awk -F">" '{print $2}' | awk -F"<" '{print $1}' > response_tidied.txt 

Есть ли способ передать вывод, полученный из этого в sed ниже? Если я запускаю это самостоятельно, оно работает просто отлично. Я просто не могу понять, как использовать значение из приведенного выше процесса очистки в sed.

sed -i -e 's/\(<td>\).*\(<\/td>\)/<td>OUTPUT_FROM_ABOVE<\/td>/g' new.xml

Любая помощь будет высоко ценится :)

1 Ответ

0 голосов
/ 03 мая 2020

Пожалуйста, обратитесь к sed - замените строку содержимым файла , используйте

sed -i "s/<td>.*<\/td>/<td>$(sed 's:/:\\/:g' response_tidied.txt)<\/td>/g" new.xml

Помните, что вам нужно использовать двойные кавычки вокруг команды sed. Дело в том, что вам нужно экранировать все слэши в строке замены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...