选择并遍历两个目录linux中的差异

时间:2019-04-12 09:50:02

标签: linux bash file sh

我有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

我的问题是,随着文件夹的增加,我不想在已经转换的文件上运行脚本,因此我只想循环浏览尚未转换的文件。即,这些文件仅以原始格式而不是音频格式。

我找到了功能

  

差异音频原始

我可以做到这一点,但是我找不到将其合并到我的bash脚本中的好方法。我们将不胜感激在正确方向上的任何帮助或推动。

1 个答案:

答案 0 :(得分:2)

您可以这样做:

diff <(ls -1a $PATH_OUT) <(ls -1a $PATH_IN) | grep -E ">" | sed -E 's/> //'

第一部分将比较两个文件夹中的文件,第二部分将过滤出仅添加的内容,第三部分将从diff符号中清除列表以仅获取名称。