このsedコマンドにはどのような問題がありますか?

このsedコマンドにはどのような問題がありますか?

このコマンドはうまく動作します。

$ sed  -e '/foo/{g; d}' myfile   

しかし、ここにはバグがあります。

$ sed  -e '/foo/{g; a bar}' myfile
sed: -e expression #1, char 0: unmatched `{'

何の問題がありますか?

ベストアンサー1

aのステートメントには、含まれているキャリッジリターン文字()ではなく、sed実際の改行文字()が必要です。したがって、このステートメントを実際に機能させる唯一の方法は次のとおりです。Cntl-jCtrl-ma

sed '/foo/{g;a\
bar
}'

入力行の後に改行文字を追加する必要があります。複数行が必要な場合は、改行文字を引用してください。

sed '/foo/{g;a\
bar\
xyzzy
}'

sedこれはその根本に戻りますed

おすすめ記事