比较两个文件,打印第二个文件中未更改的第一个单词

时间:2017-10-11 07:54:14

标签: shell

我的 fileA 包含以下内容:

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

我的 fileB 包含以下内容

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

我想比较 fileA fileB 。如果fileB中的任何行与fileA相比没有变化,那么我想打印该行的第一个单词。

因此,根据我上面给出的例子,输出应该只是以下内容。

12345

我试过diffcomm。但是, fileB 中的行可能与 fileA 中显示的顺序不同。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

grep -f fileA fileB | awk -F: '{print $1}'

答案 1 :(得分:1)

这个awk单行应该做的工作:

awk -F':' 'NR==FNR{a[$0]=1;next}a[$0]{print $1}' fileA fileB