有什么方法可以找到唯一/修改过的文件吗?
我有两个带有哈希值和名称的文本文件,例如:
文件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.txt
和 file2.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
命令之后我找不到输出文件名的方法。
最佳答案
使用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
关于bash - 查找唯一的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60432952/