具有相同名称的diff文件

时间:2016-05-11 11:15:15

标签: unix diff

在一个目录中,我有大约20个文件(让我们说它们从1命名为20),在第二个目录中我有200个文件(从{{1}命名)到1)。我怎么能200只有那些名字相同的人?

这可以使用oneliner完成而不使用bash脚本吗?

1 个答案:

答案 0 :(得分:0)

来自man diff

   --unidirectional-new-file
          treat absent first files as empty

测试

鉴于这种结构:

seq 5 > aaa/a1
seq 5 > aaa/a2
seq 5 > aaa/a3
seq 5 > bbb/a1
seq 10 > bbb/a3

那是:

$ tree aaa
aaa
├── a1
├── a2
└── a3

0 directories, 3 files
$ tree bbb
bbb
├── a1
└── a3

0 directories, 2 files

让我们比较一下:

$ diff aaa bbb --unidirectional-new-file
diff --unidirectional-new-file aaa/a1 bbb/a1
5a6,10
> 6
> 7
> 8
> 9
> 10
Only in aaa: a2

让我们比较一下:

$ diff bbb aaa --unidirectional-new-file
diff --unidirectional-new-file bbb/a1 aaa/a1
6,10d5
< 6
< 7
< 8
< 9
< 10
diff --unidirectional-new-file bbb/a2 aaa/a2
0a1,5
> 1
> 2
> 3
> 4
> 5

因此顺序很重要:它提到了第一个目录中存在的文件,但没有提到第二个目录中的文件。