我使用以下命令在vi中格式化我的xml。
:1,$!xmllint --format --recover - 2>/dev/null
然而压痕不合适。输出就像标签内的数据分隔1个空格。
<masterTag>
<tag1>eeww</tag1>
<tag2>rrt</tag2>
<tag3>ee</tag3>
<tag4>1</tag4>
</masterTag>
如果我希望在标签内部将变量分隔10个空格,我可以使用什么样的comamnd 即输出
<masterTag>
<tag1>eeww</tag1>
<tag2>rrt</tag2>
<tag3>ee</tag3>
<tag4>1</tag4>
</masterTag>
还有一个4级案例要求(输入)
<a>
<b>
<c>
<d>
</d>
</c>
<!-- this is test -->
</b>
</a>
我得到的输出是
<a>
<b>
<c>
<d>
</d>
</c>
<!-- this is test -->
</b>
</a>
这显然是错误的
答案 0 :(得分:1)
来自xmllint手册:http://linux.die.net/man/1/xmllint
--format
重新格式化并重新输出输出。 XMLLINT_INDENT环境变量控制缩进。默认值为两个空格“”。
因此以下命令:
:1,$!XMLLINT_INDENT=' ' xmllint --format --recover - 2>/dev/null
将您的间距设置为10个空格。
使用export
命令可以更改同一shell中对xmllint
的所有调用的这些设置:
export XMLLINT_INDENT=' '