我想更改以下行:
<A HREF="classes_index_additions.html"class="hiddenlink">
到
<A HREF="classes_index_additions.html" class="hiddenlink">
(请注意class
之前添加的&#39;&#39;但它应该留下像
<meta name="generator" content="JDiff v1.1.1">
单独。 sed -e 's|\("[^"]*"\)\([^ />]\)|\1 \2|g'
满足第一个条件,但它将其他文本更改为
<meta name="generator" content=" JDiff v1.1.1"/>
如何让sed
处理正确的双引号对?
答案 0 :(得分:1)
你可以试试这个:
sed -e 's/"\([^" ]*\)=/" \1=/g'
但是对于sed,正则表达式可能与您不想要的文档的其他部分匹配,因此最好尝试并查看结果以查看是否存在任何意外的副作用!
答案 1 :(得分:0)
您可以尝试将每个属性放在一个新行上,然后在删除新行之前调整每行的尾随空格。
sed -r 's/(\w*="[^"]*")/\n\1/g; s/ *\n/\n/g; s/\n/ /g'
这样做如下:
s/(\w*="[^"]*")/\n\1/g
将每个属性放在一个新行上,以便您的节点看起来像这样
<A
HREF="classes_index_additions.html"
class="hiddenlink">
之后删除尾随空格
s/ *\n/\n/g
删除新行
s/\n/ /g