所以,在 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
sed -i '/keyword/d' *.txt - 在你的目录中运行它。
sed-stream 编辑器,在这里使用它来删除单个文件中的行
-i 选项:在输入文件中进行永久更改
'/keywprd/' : 指定要在文件中搜索的模式或键
选项 d :通知 sed 需要删除匹配的行。
*.txt :简单地告诉 sed 使用目录中的所有文本文件作为
处理的输入,您可以像我一样指定一个单独的文件或 *.txt 之类的扩展名。
试试这个:
find your_path_filename |xargs sed -i '/key_word/d'