Bash 我如何删除包含特定图案的线条,并使用;模式文件;?

Bash 我如何删除包含特定图案的线条,并使用;模式文件;?,bash,shell,Bash,Shell,例如,模式文件包含: thepiratebay.org some-url.com 基本上,需要从文件中删除具有这些模式的行。我该怎么做?我更喜欢使用核心UTIL的方法。使用grep: grep -vf pattern-file data-file > new-file mv new-file data-file -v给出了不包含模式的行 -f使用grep指定包含模式的文件: grep -vf pattern-file data-file > new-file mv new-f

例如,模式文件包含:

thepiratebay.org
some-url.com

基本上,需要从文件中删除具有这些模式的行。我该怎么做?我更喜欢使用核心UTIL的方法。

使用
grep

grep -vf pattern-file data-file  > new-file
mv new-file data-file
-v
给出了不包含模式的行


-f
使用
grep
指定包含模式的文件:

grep -vf pattern-file data-file  > new-file
mv new-file data-file
-v
给出了不包含模式的行


-f
指定包含模式的文件

sed
也可用于此操作

 sed -i '/thepiratebay.org/d;/some-url.com/d' inputfile.txt
d
选项在查找
/pattern/
后删除该行。将,
-i.bak
用于
FreeBSD/MacOS


-i
选项在位编辑文件并一次性覆盖
-i.bak执行相同的操作,但将原始文件复制到
inputfile.txt。bak
sed
也可用于此操作

 sed -i '/thepiratebay.org/d;/some-url.com/d' inputfile.txt
d
选项在查找
/pattern/
后删除该行。将,
-i.bak
用于
FreeBSD/MacOS


-i
选项在位编辑文件并一次性覆盖
-i.bak
执行相同的操作,但将原始文件复制到
inputfile.txt.bak

grep-vf pattern_file file文件
在模式列表较小时工作良好。对于较大的列表,本文有一个更好的解决方案:
grep-vf pattern_文件
的可能副本在模式列表较小时工作良好。对于大型列表,此帖子有一个更好的解决方案:。可能重复