假设我有一个这样的 xml
<a>
hey
how
are
</a>
<a>
where
are
you
</a>
我想改变它们并分配这样的号码--
1.hey
how
are
2.where
are
you
我更喜欢用 bash 来回答,谢谢。
答案1
假设任意命名的根元素,您可以使用xmlstarletawk
,因为使用或处理 XML 文件通常不是一个好主意sed
- 手头的任务可以通过以下单行命令轻松完成:
xmlstarlet sel -t -m "//a" -v "concat(position(),'. ',.)" input.xml
其输出为:
1.
hey
how
are
2.
where
are
you
删除第一个换行符会比较复杂。
如果你真的想这么做,你可以尝试
xmlstarlet sel -t -m "//a" -v "concat(position(),'. ',substring-after(.,' '))" a.xml
但这是根据给定的 XML 示例量身定制的。