例如
输入
<url wiki=https://wiki.archlinux.org/index.php/Main_Page forums=https://bbs.archlinux.org/>
期望的输出
<url wiki="https://wiki.archlinux.org/index.php/Main_Page" forums="https://bbs.archlinux.org/">
这是一个开始的示例命令,用“=”替换=。在我的简单思想中,有一些方法可以让它在等于之后搜索下一个单词并将其包含在内。我不确定这是否存在,但感谢任何帮助。
echo "<url wiki=https://wiki.archlinux.org/index.php/Main_Page forums=https://bbs.archlinux.org/>" | sed 's/=/"&"/'
答案 0 :(得分:2)
您建议的正则表达式(sed 's/=/"&"/'
)会将=
替换为"="
,这不是您所需要的。这似乎对您的示例数据正常工作:
sed -e 's/=\([^" >][^ >]*\)/="\1"/g'
替换等号后跟非空白,非引号,非大于和一串其他非空白,非大于字符的字符,带有等号,双引号,记住的字符串和另一个双引号,在每一行全球。
答案 1 :(得分:0)
sed 's/\(=\)\([^ >]*\)/\1"\2"/g'
在=
符号后捕获非空格字符串序列,并用引号将其括起来