根据另一个文件中的模式删除行

Zai*_*ris 4 awk grep

我有两个文件:

input.txt:

Hi 1-12T2EDD
1-13D62L6Hello
1-15SDWAKWazzup
Wow1-18Z3QWY
Run Code Online (Sandbox Code Playgroud)

filter.txt:

1-15SDWAK
1-1VF3XHV
Run Code Online (Sandbox Code Playgroud)

我想从匹配模式删除线filter.txtinput.txt.在SQL的理解,我想这样做左外连接input.txt使用filter.txt.

output.txt:

Hi1-12T2EDD
1-13D62L6Hello
Wow1-18Z3QWY
Run Code Online (Sandbox Code Playgroud)

Chr*_*our 6

一个简单的grep会做到这一点:

$ grep -Fvf filter input
Hi 1-12T2EDD
1-13D62L6Hello
Wow1-18Z3QWY
Run Code Online (Sandbox Code Playgroud)

选项:

  • -F 对于固定字符串,因为我们不需要正则表达式匹配
  • -v 用于反向匹配
  • -f用于指定包含字符串的文件(反向)匹配.