如何在使用选项 -e 时抑制 seds 不必要的输出?

如何在使用选项 -e 时抑制 seds 不必要的输出?

为什么 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'

反而。

相关内容