2016-08-20 8 views
1

SEDのパターンスペースを再開したい。私はs/^.*$/hello world/;でこれを行うことができますが、私はcコマンドを何らかの形で使っています - 私のsedスクリプトで改行を使わないでですか?それがどのような方法でも可能かどうかは、私には全く分かりません。改行なしでsedのappend/change/insertを使う

aiコマンドの同じ質問)

+0

[Sed:One-Lineerでa、c、またはiを使用する]の可能な複製(http://stackoverflow.com/questions/38938645/sed-using-ac-or-i-in-a-one-ライナー) – kdhp

答えて

1

あなたのシェルがbashのであれば、ここでワンライナーでcを使用する便利な方法は次のとおりです。

$ seq 3 | sed $'/2/c\\\nNew Text' 
1 
New Text 
3 

これは、任意の行を探します2を含み、それをNew Textに変更します。

これは、bashの$'...'機能を使用して、文字列に改行を入力します。改行は\nで表されます。 cの後に必要なバックスラッシュは、\\で表されます。

$'...'機能がksh93zshmkshでも利用可能で、FreeBSDのsh

+0

十分に、ありがとう。 – einpoklum

関連する問題