代码之家  ›  专栏  ›  技术社区  ›  kingmakerking

比较两个文件,打印第二个文件中不变的第一个单词

  •  0
  • kingmakerking  · 技术社区  · 8 年前

    文件A 包括以下内容:

    12345:$gfdgfgfgfgfgfgfdgdgfgfdgfdg/:17436:0:99999:7:::
    67890:$kjhwhkjhwekjrhwkejhwkjehkjl/:17433:0:99999:7:::
    14567:$aaaaaaaaaaaaaaaaaaaaaaaaaaa/:17437:0:99999:7:::
    

    我有 具有以下内容

    12345:$gfdgfgfgfgfgfgfdgdgfgfdgfdg/:17436:0:99999:7:::
    14567:$bbbbbbbbbbbbbbbbbbbbbbbbbbb/:17437:0:99999:7:::
    67890:$ccccccccccccccccccccccccccc/:17433:0:99999:7:::
    

    我想比较一下 文件A 文件B . 如果fileB中的任何行与fileA相比没有变化,那么我想打印该行的第一个字。

    因此,根据我上面给出的示例,输出应该如下所示。

    12345
    

    我试了一下运气 diff comm . 但是 文件B 可能与中出现的顺序不同 文件A .

    任何帮助都将不胜感激。

    2 回复  |  直到 8 年前
        1
  •  1
  •   Kent    8 年前

    这个awk one liner应该可以完成以下工作:

    awk -F':' 'NR==FNR{a[$0]=1;next}a[$0]{print $1}' fileA fileB
    
        2
  •  1
  •   CWLiu    8 年前
    grep -f fileA fileB | awk -F: '{print $1}'