所以,在linux中,我有一个包含大量大文本文件的文件夹。
我想删除包含特定关键字的这些文件的所有行。 在所有文件中有没有简单的方法呢?
答案 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'