b
ラベルは許可しますが、n
ラベルは許可せず、ラベルなしで使用するには、...aなしで渡された引数b
の最後に(少なくとも1行)ラベルを配置する必要があるという明白な構文点に加えて、ラベルとanは同じことをするようです。-e
b
n
これは本当ですか?それとも私が認識しなかった微妙な違いはありますか?どんな条件で彼らは同じことをし、どんな条件では同じことをしませんか。
ベストアンサー1
両方の例は同じで、n
ただb
。出力が異なることがわかります。
$ echo $'1\n2\n3' | sed 's/./AA/; n; s/./BB/'
AA
BB
AA
$ echo $'1\n2\n3' | sed 's/./AA/; b; s/./BB/'
AA
AA
AA
b
コマンドの最後に分岐します。 n
残りのコマンドを実行し続けます。したがって、についてはb
置き換えはs/./BB/
行われません。使用する場合は、n
1行ずつフィルタリングして実行します。
(上記のコマンドはGNU sedを使用して実行されました。BSD / OSX sedの場合は、OPで指摘されているように、コード形式に少しの変更が必要です。)