-eオプションを使用するときにsedで不要な出力を抑制するにはどうすればよいですか?

-eオプションを使用するときにsedで不要な出力を抑制するにはどうすればよいですか?

ここで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'

代わりに。

おすすめ記事