テキストファイル中の特定の文字列を含む行を削除する
sedを使って、テキストファイルの中の特定の文字列を含むすべての行を削除するにはどうしたらいいですか?
1652
3
sedを使って、テキストファイルの中の特定の文字列を含むすべての行を削除するにはどうしたらいいですか?
行を削除して、出力を標準出力にするには
ファイルを直接変更する場合 - BSDのsedでは動作しません。
同じですが、BSD sed(Mac OS XとFreeBSD)の場合 - GNU sedでは動作しません。
ファイルを直接変更する(バックアップを作成する)場合 - BSDおよびGNU sedで動作します。
特定の文字列を含む行を削除する方法は、
sed
以外にもたくさんあります。AWK
Ruby (1.9+)
Perl
Shell (bash 3.2 以降)
GNU grep
そしてもちろん
sed
(逆数を印刷する方が実際の削除よりも速い)。sedを使って、ファイルの所定の位置にある行を置き換えることができます。しかし、grepを使って逆に2つ目のファイルに入れて、2つ目のファイルを元のファイルの上に移動させるよりもずっと遅いようです。
e.g.
または
私のマシンでは、最初のコマンドは3倍の時間がかかります。