我有以下XML文件:
<PARENT_TAG>
<CHILD_TAG>
<DETAIL_1_TAG></DETAIL_1_TAG>
<DETAIL_2_TAG></DETAIL_2_TAG>
<DETAIL_3_TAG></DETAIL_3_TAG>
<DETAIL_4_TAG></DETAIL_4_TAG>
</CHILD_TAG>
</PARENT_TAG>
即使是
也可以格式化<PARENT_TAG><CHILD_TAG><DETAIL_1_TAG> ... </CHILD_TAG></PARENT_TAG>
我想在使用grep,awk,sed之后提取xml标记的名称。 在这种情况下,我会提取&#34; CHILD_TAG&#34;。
答案 0 :(得分:0)
您可以通过以下方式获得所有内容:
awk '$1=$1' ORS="" file
<PARENT_TAG><CHILD_TAG><DETAIL_1_TAG></DETAIL_1_TAG><DETAIL_2_TAG></DETAIL_2_TAG><DETAIL_3_TAG></DETAIL_3_TAG><DETAIL_4_TAG></DETAIL_4_TAG></CHILD_TAG></PARENT_TAG>
但如果你有更多行,你需要设置一个开始和结束模式。
这是另一个例子:
cat file
test
<PARENT_TAG>
<CHILD_TAG>
<DETAIL_1_TAG></DETAIL_1_TAG>
<DETAIL_2_TAG></DETAIL_2_TAG>
<DETAIL_3_TAG></DETAIL_3_TAG>
<DETAIL_4_TAG></DETAIL_4_TAG>
</CHILD_TAG>
</PARENT_TAG>
more data
awk '/<PARENT/ {f=1} /<\/PARENT/ {f=0} {printf "%s%s",$1,(f?"":RS)}'
test
<PARENT_TAG><CHILD_TAG><DETAIL_1_TAG></DETAIL_1_TAG><DETAIL_2_TAG></DETAIL_2_TAG><DETAIL_3_TAG></DETAIL_3_TAG><DETAIL_4_TAG></DETAIL_4_TAG></CHILD_TAG></PARENT_TAG>
more
仅在PARENT
代码中删除换行符。