sed 搜索多个单词并删除这些行

Sri*_*uru 4 shell sed

我有一个超过 50000 行的主文件,我需要从实际文件中删除大约 20000 行,为此我使用了grep -vE显示错误为参数太多的命令。

我正在使用sed命令来删除那些使用 for 循环的。但是删除需要很多时间,因为sed要初始化20000 个命令。

for i in `cat 20000-words.txt`; do 
    sed -i -e "/$i/ d" 50000-lines.txt
done
Run Code Online (Sandbox Code Playgroud)

god*_*eek 9

假设 20000-words.txt 已经是每行一个字的格式,执行:

grep -vFf 20000-words.txt 50000-lines.txt >50000-filtered-lines.txt
Run Code Online (Sandbox Code Playgroud)

-fgrep的参数告诉它从文件中读取模式,每行一个模式,而不是将它们作为命令行参数。-Fgrep的参数告诉它模式应该用作文字字符串而不是正则表达式。