首先,可能还有其他(更好的)选项,但在这种情况下我必须使用 awk 的 sed。 我有一个包含以下内容的 XML 文件。
<Field name="field1" type="String">AAAA</Field>
<Field name="field2" type="Integer">0</Field>
<Field name="field4" type="String">BBBB</Field>
这里我想用sed修改内容,得到如下结果:
<field1>AAAA</field1>
<field2>0</field2>
<field4>BBBB</field4>
所以删除 "*Field name="*"
,名称的最后引号和其余属性,直到 *>*
我还想更改最后一个 </Field>
与实际的字段名称。
如何接近 awk
或 sed
?
从第一个标签中删除适用于
sed 's/ type=".*"//'
and
sed 's/Field name="//'
我不确定如何继续更换最后一个。
最佳答案
使用sed
$ sed -E 's~[A-Z][^"]*"([^"]*)[^>]*([^/]*/)[^>]*~\1\2\1~' input_file
<field1>AAAA</field1>
<field2>0</field2>
<field4>BBBB</field4>
https://stackoverflow.com/questions/73824156/