Я добился указанного результата за 2 шага
На первом этапе я ищу шаблон и сохраняю его в файле Output.txt
На втором шаге 2 я использовал цикл for и распечатал содержимое согласно требованию
шаг 1
egrep -i "name|count|region" l.txt | awk -F ":" '{print $NF}' | sed "s/\^M//g" >> Ouput.txt
шаг 2
for ((i=1;i<=9;i=i+3)); do sed -n ''$i',+2p' Output.txt |sed "N;s/\n/ /g" |sed "N;s/\n/ /g"; done
выход
some name 1 some_region
some name 2 some_region
some name 1 some_region
Использование xmlstarlet
особенно жестоким образом (Я жду правильного xpath)
for x in $(xmlstarlet sel -t -m "//*" -n -v "name()" file1.xml | sort | uniq); do
xmlstarlet ed -r "//svg:$x" -v "svg:$x" file1.xml > tmp.xml;
mv tmp.xml file1.xml;
done
Поскольку вы уже объявили пространство имен svg
, вам нужно вызвать его в xpath
, чтобы изменить буквальное значение имен узлов.