如何删除包含文件夹的所有文本文件中的单词的行?

时间:2013-03-28 17:48:45

标签: linux bash

所以,在linux中,我有一个包含大量大文本文件的文件夹。

我想删除包含特定关键字的这些文件的所有行。 在所有文件中有没有简单的方法呢?

5 个答案:

答案 0 :(得分:3)

已有许多类似的答案。我想补充一点,如果你想匹配this is a line containing a keyword而不是this is a line containing someoneelseskeyword,那么你最好在这个词周围添加括号:

sed -i '/\<keyword\>/d' *.txt

答案 1 :(得分:2)

我现在无法测试,但它应该让你开始

find /path/to/folder -type f -exec sed -i '/foo/d' {} ';'
  • 在目录/path/to/folder
  • 中查找文件
  • 在包含foo
  • 的这些文件中查找行
  • 从这些文件中删除这些行

答案 2 :(得分:0)

不确定

for x in files*
do
    grep -v your_pattern "$x" > x && mv x "$x"
done

答案 3 :(得分:0)

sed -i'/ keyword / d'* .txt - 在你的目录中运行它。

sed - stream editor,在此用它来删除单个文件中的行

-i选项:使输入文件中的更改透过

'/ keywprd /':指定要在文件中搜索的模式或密钥

选项d:通知sed需要删除匹配的行。

* .txt:只是告诉sed使用目录中的所有文本文件作为
的输入 处理时,您可以像我一样指定个人或类似* .txt的扩展名。

答案 4 :(得分:0)

试试这个:

find your_path_filename |xargs sed -i '/key_word/d'