如何删除包含特定模式的行并具有"模式文件"?

时间:2018-01-28 17:17:55

标签: bash shell

例如,模式文件包含:

thepiratebay.org
some-url.com

基本上,需要从文件中删除具有这些模式的行。我怎样才能做到这一点?我更喜欢使用核心工具的方法。

2 个答案:

答案 0 :(得分:2)

使用grep

grep -vf pattern-file data-file  > new-file
mv new-file data-file

-v给出不包含模式的行

-f指定包含模式的文件

答案 1 :(得分:0)

sed也可以用于此操作。

 sed -i '/thepiratebay.org/d;/some-url.com/d' inputfile.txt
找到d后,

/pattern/选项会删除该行。对-i.bak使用FreeBSD/MacOS

-i选项就地编辑文件并一次性覆盖它。 -i.bak也会这样做,但会将原始文件复制到inputfile.txt.bak