【问题标题】:Compare Two Files and Print Lines That Don't Match比较两个文件并打印不匹配的行
【发布时间】:2017-07-30 13:15:46
【问题描述】:

我正在尝试比较两个文件(file1 和 file2)并打印 file1 中 与 file2 中的列表匹配的完整行 - 理想情况下是在新的 .txt 文件中,但是当我运行 awk 它没有打印任何东西。

file1 example                    file2 example
12345 /users/test/Desktop        543252 
54321 /users/test/Downloads      12345  
0000  /users/test/Desktop        11111
                                 0000

expected output
54321 /users/test/Downloads 

我试过的命令是

awk 'NR==FNR{a[$1]++;next};a[$1] ==0' file1.txt file2.txt

理想情况下,我希望能够将其构建到我正在编写的 python 程序中(不知道这是否可能),否则我会很高兴它通过 linux 终端运行。

任何想法或指点将不胜感激。

【问题讨论】:

    标签: linux python-2.7 awk


    【解决方案1】:

    你可以通过grep得到预期的输出:

    grep -vf file2 file1
    

    【讨论】:

    • 谢谢!完全忽略了 grep 并专注于 awk!
    【解决方案2】:

    您必须更正您的,如下所示

    awk 'FNR==NR{ a[$1]; next } !($1 in a)' file2 file1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-23
      • 2016-07-30
      • 2012-09-05
      • 2017-07-07
      • 2020-11-24
      • 1970-01-01
      • 1970-01-01
      • 2015-04-08
      相关资源
      最近更新 更多