そのため、Linux には大量の大きなテキスト ファイルを含むフォルダーがあります。
特定のキーワードを含むこれらのファイルのすべての行を削除したいと考えています。すべてのファイルでそれを行う簡単な方法はありますか?
すでに多くの同様の回答があります。一致させたいが、一致させたくthis is a line containing a keyword
ないthis is a line containing someoneelseskeyword
場合は、単語の周りに括弧を追加することをお勧めします。
sed -i '/\<keyword\>/d' *.txt
今はテストできませんが、すぐに始められるはずです
find /path/to/folder -type f -exec sed -i '/foo/d' {} ';'
/path/to/folder
foo
もちろん:
for x in files*
do
grep -v your_pattern "$x" > x && mv x "$x"
done
これを試して:
find your_path_filename |xargs sed -i '/key_word/d'
sed -i '/keyword/d' *.txt -- これをディレクトリで実行します。
sed - ストリーム エディタ。個々のファイルの行を削除するためにここで使用します
-i オプション : 入力ファイルの変更を永続化します
'/keywprd/' : ファイル内で検索するパターンまたはキーを指定します
オプション d : 一致する行を削除する必要があることを sed に通知します。
*.txt : ディレクトリ内のすべてのテキスト ファイルを
処理の入力として使用するように sed に指示するだけです。個人または *.txt のような拡張子を指定できます。