BASH脚本,用于查找按内容匹配的文件

时间:2014-06-21 12:30:33

标签: bash

我有几千个.wav文件,跨越几个级别的子文件夹。

几个月前,我选择了其中的12个并将它们复制到另一个文件夹中。

在这个新文件夹中,我将它们重命名为01.wav为12.wav。

现在我需要弄清楚原始文件是什么。

我该怎么做呢?

1 个答案:

答案 0 :(得分:3)

转到12 wav个文件所在的目录并执行:

cksum {01..12}.wav > cksum.txt

然后将cksum.txt移至wav文件的顶级目录,并cd移至该目录。然后执行此管道:

find . -name '*.wav' -exec cksum '{}' + |
awk 'NR == FNR {ck[$1] = $3; next} {if ($1 in ck) print ck[$1], $3}' cksum.txt -

这也打印了12个wav文件作为自身的副本,但为了简单起见,我将其保留(尽管删除它们很容易)。