別のディレクトリからファイルを順番に読み込む

別のディレクトリからファイルを順番に読み込む

bashには、2つの異なるディレクトリからPythonプログラムにcsvファイルを転送するスクリプトがあります。

#!/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

2つのディレクトリにあるファイルを使用aa/*してbb/*一覧表示し、2つの配列に保存してその配列を繰り返すことができます。

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

aa/applebb/apple、、、などの順序で出力されます。aa/orangeソート順はデフォルトの事前ソートです。上記のコードは最初のリストからファイル数を取得するため、デフォルトでは両方のディレクトリに同じ数のファイルがあるとします。

(2つのディレクトリのファイル名のリストが同じでない場合、これがどれほど意味があるのか​​わかりません。)

関連情報