sed
特定の単語を含む行全体を置き換えようとしています。そして最後に改行文字があります。テストファイルは次のとおりです。
this # target for substitution
this is a test
another test?
今私に解放するここからそしてここから接続済みPost、どういうわけかこれを行う方法を理解します。
sed 's/^this$/test/g' testfile
これは効果があるか、少なくともそうです。なぜなら単語の末尾の改行文字this
はそのまま残ります。
test # target for substitution but newline is still there
this is a test
another test?
上記の内容を見ると、知っている sed
改行文字を直接一致させる方法はありません(一部のバージョンでは「\ n」を使用できることを覚えていますが、sed
これは要点ではありません)。
私は少なくとも全体の単語/行と改行文字を削除する方法を知っています。
sed '/^this$/d' testfile
しかし、代わりに使用する必要があります。
どうすればいいですか? (sed
最大)
ベストアンサー1
this
test
私が理解しているところによると、単語と改行文字だけで構成される行を変更したいので
foo
this
this is a test
しなければならない
foo
testthis is a test
sed
次の行に参加し、N
改行文字の前のすべての内容を変更するだけです。
sed '/^this$/{N;s/.*\n/test/;}'