我有 bash 脚本,它循环遍历原始文件夹中的文件并将它们放入音频文件夹中。这很好用。
#!/bin/bash
PATH_IN=('/nas/data/customers/test2/raw/')
PATH_OUT=('/nas/data/customers/test2/audio/')
mkdir -p /nas/data/customers/test2/audio
IFS=$'\n'
find $PATH_IN -type f -name '*.wav' -exec basename {} \; | while read -r file; do
sox -S ${PATH_IN}${file} -e signed-integer ${PATH_OUT}${file}
done
我的问题是,随着文件夹的增长,我不想在已经转换的文件上运行脚本,所以我想只循环尚未转换的文件。也就是说,文件只有原始格式,但没有音频格式。
我找到了函数
diff audio raw
我可以做到这一点,但我找不到将其合并到我的 bash 脚本中的好方法。在正确方向上的任何帮助或插入将不胜感激。
最佳答案
你可以这样做:
diff <(ls -1a $PATH_OUT) <(ls -1a $PATH_IN) | grep -E ">" | sed -E 's/> //'
第一部分将比较两个文件夹中的文件,第二部分将过滤掉以仅获取添加内容,第三部分将清除列表中的差异符号以仅获取名称。
关于linux - 选择并循环遍历两个目录 linux 中的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55648941/