首页 > 解决方案 > 查找唯一文件

问题描述

有没有办法找到唯一/修改过的文件?

我有两个带有哈希和名称的文本文件,例如:

文件 1.txt:

   c3f2b563b3cb091esada5b40fbfd5e60f526da3d *10.88.10/1.xml
   770aafff757f83e55c4cadaad7144e512299788d *10.88.10/config/2.csv
   38045a78f87addaddada4c3754bea76c72cbfe25 *10.88.10/3.txt
   asddd132dfdada1231431411ddsfadfgdkkgdada *10.88.10/4.js

文件2.txt:

c3f2b563b3cb091esada5b40fbfd5e60f526da3d *10.88.12/1.xml
770aafff757f83e55c4cadaad7144e512299788d *10.88.12/config/2.csv
38045a78f87addaddada4c3754bea76c72cbfe25 *10.88.12/3.txt
asddd1222131231231sadsdaddsfadfgdkkgdada *10.88.12/4.js
dadadadawqeqweqwg32542362436532wqrewqr32 *10.88.12/5.py

如您所见,其中的一些文件file1.txtfile2.txt相同的。file2.txt添加了一个名为的文件5.js和一个名为4.js.

有什么办法可以输出修改和添加的文件file2.txt吗?

预期输出:

    10.88.12/4.js
    10.88.12/5.py

我尝试了该diff命令,但由于文件名(10.88.10 到 10.88.12),它显示所有文件都不同。

我试过cut -d' ' f1了,但是在diff命令之后我找不到输出文件名的方法。

标签: bashshellsedhashcommand-line

解决方案


awk

$ awk 'NR==FNR{c[$1]++;next}; { if (c[$1] == 0) print $2; }' File1.txt  File2.txt
*10.88.12/4.js
*10.88.12/5.py

基于 https://unix.stackexchange.com/questions/174599/using-diff-on-a-specific-column-in-a-file


推荐阅读