다른 디렉터리에서 파일을 차례로 로드

다른 디렉터리에서 파일을 차례로 로드

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

두 개의 디렉터리에 있는 파일을 사용 aa/*하고 bb/*나열한 다음 두 개의 배열에 저장하고 해당 배열을 반복할 수 있습니다.

#!/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정렬 순서는 기본 사전 정렬입니다. 위의 코드는 첫 번째 목록에서 파일 수를 가져오므로 기본적으로 두 디렉터리에 동일한 수의 파일이 있다고 가정합니다.

(두 디렉토리의 파일 이름 목록이 동일하지 않은 경우 이것이 얼마나 의미가 있는지 잘 모르겠습니다.)

관련 정보