两个文件是否相同?

两个文件是否相同?

我目前正在尝试调试涉及创建 feat.scp 文件的脚本的一部分。

该文件通常这样做

for n in $(seq $nj); do
  cat $mfccdir/raw_mfcc_$name.$n.scp || exit 1;
done > $data/feats.scp || exit 1

但是我已手动将该文件raw_mfcc_$name.$n.scp 粘贴到$data并将其重命名为feats.scp

这与 for 循环所做的有什么不同吗?

答案1

首先让我们来看一下循环。循环应该遍历$nj变量给出的一定范围的数字,并在每次迭代中打印raw_mfcc_$name.1.scpraw_mfcc_$name.2.scp依此类推,直到$nj数字。因此,所有这些文件都会转储到一个文件中feats.scp

现在,如果你手动获取所有这些文件并将它们feats.scp逐个粘贴进去,那么当然 - 那是相同的。如果你只粘贴一个文件,feats.scp那就不一样了。

这里还有一个小问题cat $mfccdir/raw_mfcc_$name.$n.scp || exit 1;。如果$nj数字是 5 ,文件编号为 1、2、3、5(缺少 4),脚本将在 4 处退出,并且不会在输出中包含 5。目前尚不清楚这是否是故意的,但我建议您对其进行编辑,至少使用continue语句代替,exit并仍将其他内容传递到feats.scp

相关内容