Удалить пустые теги XML через bash / терминал - PullRequest
1 голос
/ 31 января 2012

Есть ли простой способ удалить определенный набор тегов xml из файла xml из терминала?

Все теги, которые я хочу удалить, имеют шаблон column_1 / 2/3/4/5/ 6/7/8/9 (некоторое число).

Я хочу сохранить столбцы от 1 до 9 и удалить все, что выше этого.

1 Ответ

2 голосов
/ 31 января 2012

ИМХО этого должно быть достаточно:

sed '/^ *<column_[0-9][0-9]\+ *\/> *$/d' file.xml > reduced.xml

Edit:

cat > test.xml << EOF 
<column_1 />
<column_2 />
<column_9 />
<column_10 />
<column_1180 />
EOF

sed '/^ *<column_[0-9][0-9][0-9]* *\/> *$/d' test.xml

Выход:

<column_1 />
<column_2 />
<column_9 />

Если в одной строке более одного вхождения:

 echo "<column_1 /><column_2 /><column_9 /><column_10 /><column_1080 />" > test2.xml

 sed 's/<column_[0-9][0-9][0-9]* *\/>//g' test2.xml

Выход:

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