特定の文字列を含む行の先頭から全文を削除する方法

特定の文字列を含む行の先頭から全文を削除する方法

sed -n '/string/,$p' file >> otherfile特定の文字列を含む行のテキストを別のファイルにコピーするために使用しています。

さて、元のファイルからコピーしたテキストを削除したいと思います。 sedとawkで別の方法を試しましたが、何の効果もありませんでした。

sedを使用してファイルから特定の文字列を含むテキストの先頭行を削除する方法は?

texta

texta1

textb    <- string, delete rest of the text from here

textb1

textc

textc1

それとも、コピーする代わりに切り取るためにsedを使用する方が簡単ですか?順序は何ですか?

ベストアンサー1

あなたはできます勝つ指定された範囲の行を新しいファイルに書き込みます。D範囲を削除します。難しい部分は、dコマンドが出力ファイル名の一部と見なされないようにすることです。 GNU sedでは、以下を使用して書き込みと削除を別々の式に分割することでこれを行うことができます。-e

otherfile重要:追加されずに切り捨てられます。

sed -i.bak -e '/string/,${w otherfile' -e 'd;}' file

おすすめ記事