【发布时间】:2021-12-21 00:22:15
【问题描述】:
我有以下代码解析 XML 以显示文件中每个元素的节点值。
#Abbreviation - symbol
cat elements/*.xml | egrep "<symbol>.*</symbol>" |sed -e "s/<symbol>\(.*\)<\/symbol>/\1/"|tr "|" " "
#Weight - atomic-weight
cat elements/*.xml | egrep "<atomic-weight>.*</atomic-weight>" |sed -e "s/<atomic-weight>\(.*\)<\/atomic-weight>/\1/"|tr "|" " "
#Number atomic-number
cat elements/*.xml | egrep "<atomic-number>.*</atomic-number>" |sed -e "s/<atomic-number>\(.*\)<\/atomic-number>/\1/"|tr "|" " " > number
如何将这三个输出格式化为一个表格而不是一个巨大的顺序列表?
样本数据 -
文件1 -
<symbol>Ag</symbol>
<atomic-number>47</atomic-number>
<atomic-weight>107.8682</atomic-weight>
文件2-
<symbol>Ba</symbol>
<atomic-number>56</atomic-number>
<atomic-weight>137.327</atomic-weight>
期望的输出 -
Symbol Number Weight
Ag 47 107.8682
Ba 56 137.327
【问题讨论】:
-
我的错,我添加了示例数据和所需的输出
-
那是一个宏伟的useless
(e)grep;tr也可以轻松折叠到sed脚本中。 -
很好,像这样的 cmets 是保持堆栈溢出精英的原因。感谢您的意见...