Awk 基于另一个文件删除文件中的行

Awk 基于另一个文件删除文件中的行,awk,sed,gnu,Awk,Sed,Gnu,我有两个名为file1和file2的文件。我想删除文件1中不在文件2中的行 文件1 文件2 期望输出 bashi 230 241 12 30 88 2.5 7.3 edison 213 218 6 16 40 2.7 6.7 我如何使用awk或sed实现这一点?grep是您的朋友: $ grep -wFf f2 f1 bashi 230 241 12 30 88 2.5 7.3 edison 213 218 6 16 40

我有两个名为file1和file2的文件。我想删除文件1中不在文件2中的行

文件1

文件2

期望输出

bashi    230    241 12  30  88  2.5 7.3
edison   213    218 6   16  40  2.7 6.7

我如何使用awk或sed实现这一点?

grep
是您的朋友:

$ grep -wFf f2 f1
bashi    230    241 12  30  88  2.5 7.3
edison   213    218 6   16  40  2.7 6.7
  • w
    匹配单词
  • F
    执行固定匹配(无正则表达式)
  • f
    使用另一个文件获取模式

    • grep
      是你的朋友:

      $ grep -wFf f2 f1
      bashi    230    241 12  30  88  2.5 7.3
      edison   213    218 6   16  40  2.7 6.7
      
      • w
        匹配单词
      • F
        执行固定匹配(无正则表达式)
      • f
        使用另一个文件获取模式

        • grep
          是你的朋友:

          $ grep -wFf f2 f1
          bashi    230    241 12  30  88  2.5 7.3
          edison   213    218 6   16  40  2.7 6.7
          
          • w
            匹配单词
          • F
            执行固定匹配(无正则表达式)
          • f
            使用另一个文件获取模式

            • grep
              是你的朋友:

              $ grep -wFf f2 f1
              bashi    230    241 12  30  88  2.5 7.3
              edison   213    218 6   16  40  2.7 6.7
              
              • w
                匹配单词
              • F
                执行固定匹配(无正则表达式)
              • f
                使用另一个文件获取模式
              输出:

              bashi    230    241 12  30  88  2.5 7.3
              edison   213    218 6   16  40  2.7 6.7
              
              读取
              file2
              并创建一个由该字段的第一个字段索引的数组,然后读取
              file1
              ,如果第一个字段在数组中,则打印该行

              输出:

              bashi    230    241 12  30  88  2.5 7.3
              edison   213    218 6   16  40  2.7 6.7
              
              读取
              file2
              并创建一个由该字段的第一个字段索引的数组,然后读取
              file1
              ,如果第一个字段在数组中,则打印该行

              输出:

              bashi    230    241 12  30  88  2.5 7.3
              edison   213    218 6   16  40  2.7 6.7
              
              读取
              file2
              并创建一个由该字段的第一个字段索引的数组,然后读取
              file1
              ,如果第一个字段在数组中,则打印该行

              输出:

              bashi    230    241 12  30  88  2.5 7.3
              edison   213    218 6   16  40  2.7 6.7
              
              读取
              file2
              并创建一个由该字段的第一个字段索引的数组,然后读取
              file1
              ,如果第一个字段在数组中,则打印该行。

              虽然(我认为)您可能会说服
              awk
              这样做,但最终,
              加入-j1 file1 file2
              是一个更好的选择你可能会说服awk做这件事,最终,
              join-j1file1file2
              是一个更好的选择。虽然(我认为)你可能会说服awk做这件事,但最终,
              join-j1file1file2
              是一个更好的选择您可能会说服
              awk
              这样做,最终,
              join-j1file1file2
              是一个更好的选择。