2

そのため、Linux には大量の大きなテキスト ファイルを含むフォルダーがあります。

特定のキーワードを含むこれらのファイルのすべての行を削除したいと考えています。すべてのファイルでそれを行う簡単な方法はありますか?

4

5 に答える 5

3

すでに多くの同様の回答があります。一致させたいが、一致させたくthis is a line containing a keywordないthis is a line containing someoneelseskeyword場合は、単語の周りに括弧を追加することをお勧めします。

sed -i '/\<keyword\>/d' *.txt
于 2013-03-28T19:37:29.233 に答える
2

今はテストできませんが、すぐに始められるはずです

find /path/to/folder -type f -exec sed -i '/foo/d' {} ';'
  • ディレクトリ内のファイルを見つける/path/to/folder
  • これらのファイルで次を含む行を見つけますfoo
  • それらのファイルからそれらの行を削除します
于 2013-03-28T17:55:08.033 に答える
0

もちろん:

for x in files*
do
    grep -v your_pattern "$x" > x && mv x "$x"
done
于 2013-03-28T17:54:39.753 に答える
0

これを試して:

find your_path_filename |xargs sed -i '/key_word/d'
于 2013-03-28T18:03:20.903 に答える
0

sed -i '/keyword/d' *.txt -- これをディレクトリで実行します。

sed - ストリーム エディタ。個々のファイルの行を削除するためにここで使用します

-i オプション : 入力ファイルの変更を永続化します

'/keywprd/' : ファイル内で検索するパターンまたはキーを指定します

オプション d : 一致する行を削除する必要があることを sed に通知します。

*.txt : ディレクトリ内のすべてのテキスト ファイルを
処理の入力として使用するように sed に指示するだけです。個人または *.txt のような拡張子を指定できます。

于 2013-03-28T17:59:52.720 に答える