Как я могу сопоставить и удалить первый и второй шаблон в тегах xml, используя sed или awk?
Вот пример
<data>A78-1-1134-HI-1</data>
<data>T78-12-1346-AG-2</data>
<data>G78-4-2156-Ag-6</data>
<data>A78-10-1971-Hh-10</data>
Вот результат, который я пытаюсь получить:
<data>1134</data>
<data>1346</data>
<data>2156</data>
<data>1971</data
Можно ли это сделать в одну строку? Вот что я попробовал:
sed 's/^.*<data>[[:alnum:]]-[0-9]-/<data>/g;s/-[a-Z].*<\/data>$//g'
Или удаляя только первый шаблон, когда я использую sed для печати, он работает:
sed -n 's/^.*<data>.*[[:alnum:]]-[0-9]-/<data>/p' file.xml | grep data
Но тогда эта команда не будет работать:
sed 's/^.*<data>.*[[:alnum:]]-[0-9]-/<data>/' file.xml