具有相同名称的差异文件
diff files with the same names
在一个目录中我有大约 20 个文件(假设它们的命名范围为 1
到 20
),在第二个目录中我有 200 个文件(命名范围为 1
到200
)。我怎么能diff
只有同名的?
是否可以在不使用 bash 脚本的情况下使用 oneliner 完成此操作?
来自 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
所以顺序很重要:它提到存在于第一个目录中的文件,但不存在于第二个目录中。
在一个目录中我有大约 20 个文件(假设它们的命名范围为 1
到 20
),在第二个目录中我有 200 个文件(命名范围为 1
到200
)。我怎么能diff
只有同名的?
是否可以在不使用 bash 脚本的情况下使用 oneliner 完成此操作?
来自 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
所以顺序很重要:它提到存在于第一个目录中的文件,但不存在于第二个目录中。