![如何在使用选项 -e 时抑制 seds 不必要的输出?](https://linux22.com/image/29260/%E5%A6%82%E4%BD%95%E5%9C%A8%E4%BD%BF%E7%94%A8%E9%80%89%E9%A1%B9%20-e%20%E6%97%B6%E6%8A%91%E5%88%B6%20seds%20%E4%B8%8D%E5%BF%85%E8%A6%81%E7%9A%84%E8%BE%93%E5%87%BA%EF%BC%9F.png)
为什么 n 选项在这里不起作用
[root@testgfs2 final]# echo a b c | sed -ne 's/[[:blank:]]/"/gp' -ne 's/^/"/pg' -ne 's/$/"/pg'
a"b"c
"a"b"c
"a"b"c"
我只需要 :
"a"b"c"
实际上我希望 sed 做类似的事情:
echo a b c d | sed ...
输出:
'a' 'b' 'c' 'd'
答案1
问题是您正在使用p
打印“模式空间”(即结果)的修饰符。要修复您的示例,只需执行以下操作:
echo a b c | sed -e 's/[[:blank:]]/"/g' -e 's/^/"/g' -e 's/$/"/g
您也可以考虑使用类似的东西:
echo a b c | sed -e 's/\(\w*\)/"\1"/g'
反而。