私はきれいにする必要があるファイルがたくさんあります。私は何かに等しい行の下のすべての行を削除する必要があります(その行も削除する必要があります)。行の後にファイルの内容を削除する "xxxxxxx"
どうすればbashで行うことができますか?
私は線を削除する方法の例が必要です、私はすべてのファイルを自分でループすることができます。
私はきれいにする必要があるファイルがたくさんあります。私は何かに等しい行の下のすべての行を削除する必要があります(その行も削除する必要があります)。行の後にファイルの内容を削除する "xxxxxxx"
どうすればbashで行うことができますか?
私は線を削除する方法の例が必要です、私はすべてのファイルを自分でループすることができます。
sedにそれを見て終了するように指示するのが最も簡単です。
sed -n '/xxxxxxx/q;p' input.txt
あなたはPerlを使用することができます。これは、場所にファイルを置き換えます
perl -i.bak -pe 'exit if /xxxxxxx/' filename.txt ...
。
は「sedの」あなたはあなたはまた、「AWK」を使用することができます もう少し複雑な要件を持っている場合は、これを行うための最も簡単な方法ですが。
{
if ($0 == "xxxxxx")
exit
else
print $0
}
をし、シェルから次のコマンドを呼び出します:
この特定のケースでは、次の内容のファイル「foo.awk」を作成
awk -f foo.awk $FILE_NAME
あなたは 'sed '/ xxxxxx/Q''(少し短く)でこれを行うこともできます。また、式をアンカーしてsedに '-i'を与えて、表示されるのではなくファイルが実際に変更されるようにしてください。 – cdhowie
ありがとう、うまくいった。 – Meredith