SEDのパターンスペースを再開したい。私はs/^.*$/hello world/;
でこれを行うことができますが、私はc
コマンドを何らかの形で使っています - 私のsedスクリプトで改行を使わないでですか?それがどのような方法でも可能かどうかは、私には全く分かりません。改行なしでsedのappend/change/insertを使う
(a
とi
コマンドの同じ質問)
SEDのパターンスペースを再開したい。私はs/^.*$/hello world/;
でこれを行うことができますが、私はc
コマンドを何らかの形で使っています - 私のsedスクリプトで改行を使わないでですか?それがどのような方法でも可能かどうかは、私には全く分かりません。改行なしでsedのappend/change/insertを使う
(a
とi
コマンドの同じ質問)
あなたのシェルがbashのであれば、ここでワンライナーでc
を使用する便利な方法は次のとおりです。
$ seq 3 | sed $'/2/c\\\nNew Text'
1
New Text
3
これは、任意の行を探します2
を含み、それをNew Text
に変更します。
これは、bashの$'...'
機能を使用して、文字列に改行を入力します。改行は\n
で表されます。 c
の後に必要なバックスラッシュは、\\
で表されます。
$'...'
機能がksh93
、zsh
、mksh
でも利用可能で、FreeBSDのsh
。
十分に、ありがとう。 – einpoklum
[Sed:One-Lineerでa、c、またはiを使用する]の可能な複製(http://stackoverflow.com/questions/38938645/sed-using-ac-or-i-in-a-one-ライナー) – kdhp