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