通过bash / terminal删除空XML标记

时间:2012-01-30 20:34:28

标签: xml bash command-line terminal

是否有一种简单的方法可以从终端内的xml文件中删除一组特定的xml标记?

我想删除的所有标签都有一个模式:column_1 / 2/3/4/5/6/7/8/9(某个数字)。

我想保留column_1到column_9,并删除任何高于此值的内容。

1 个答案:

答案 0 :(得分:2)

恕我直言,这应该足够了:

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

编辑:

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 />