【问题标题】:Finding a unique file查找唯一文件
【发布时间】:2020-06-11 10:47:43
【问题描述】:

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

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

file1.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

file2.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 命令之后,我找不到输出文件名的方法。

【问题讨论】:

  • dadadadawqeqweqwg32542362436532wqrewqr32 *10.88.12/5.py 中的* 之前是否有多余的空格?

标签: bash shell sed hash command-line


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多