依次加载来自不同目录的文件

依次加载来自不同目录的文件

我在 bash 中有一个脚本,可以将 csv 文件从 2 个不同的目录传输到 python 程序,如下所示:

#!/bin/bash
DIR1=/a/directory
DIR2=/another/directory

for f in DIR1
do
    /direc/to/python3.7 /dir/scriptspython/.py $DIR1/$f
done

for n in DIR2
do
    /direc/to/python3.7 /dir/scriptspython/.py $DIR2/$f
done

问题是我希望目录中的文件一个接一个地加载,如下所示:$DIR1/$f(1) then $DIR2/$n(1)...$DIR1/$f(x) then DIR2/$n(x)

我的问题看起来与此类似线但用目录而不是文件

答案1

所以,我假设你有这样的文件

aa/apple aa/orange aa/perry  bb/apple bb/orange bb/perry

我们可以使用aa/*bb/*列出两个目录中的文件,然后将它们保存在两个数组中,并循环这些数组:

#!/bin/bash
files1=(aa/*)
files2=(bb/*)
for (( i=0; i < ${#files1[@]}; i++)); do
    echo "${files1[i]}"
    echo "${files2[i]}"
done

aa/apple这将按、bb/apple、等顺序输出它们。aa/orange排序顺序是默认的字典排序。上面的代码从第一个列表中获取文件数,因此它基本上假设两个目录中的文件数量相等。

(我不确定如果两个目录中的文件名列表不相等,这有多大意义。)

相关内容