使用awk sed命令和while循环从第二个文件中删除条目

the*_*lat 3 linux bash awk sed while-loop

我有两个输出文件:

  1. FILE-A包含70,000多个唯一条目.
  2. FILE-B包含我需要从FILE-B中删除的唯一列表.

FILE-A:

 TOM
 JACK
 AILEY
 BORG
 ROSE
 ELI
Run Code Online (Sandbox Code Playgroud)

文件-B 内容:

 TOM
 ELI
Run Code Online (Sandbox Code Playgroud)

我想从File-A中删除FILE-B中列出的任何内容.

FILE-C(结果文件):

 JACK
 AILEY
 BORG
 ROSE
Run Code Online (Sandbox Code Playgroud)

我想我需要一份while r for i声明.有人可以帮我弄这个吗?我需要cat阅读FILE-A并且对于FILE-B中的每一行我需要从FILE-A中删除它.

我应该使用什么命令?

lcd*_*047 6

您既不需要awk,也不需要sed循环.你只需要grep:

fgrep -vxf FILE-B FILE-A
Run Code Online (Sandbox Code Playgroud)

请注意使用-x以准确匹配条目.

输出:

JACK
AILEY
BORG
ROSE
Run Code Online (Sandbox Code Playgroud)

  • @PeterCordes`fgrep`总是将模式解释为普通字符串而不是正则表达式.它和`grep -F`完全一样. (2认同)