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/apple
bb/apple
, , 등의 순서로 출력 됩니다 . aa/orange
정렬 순서는 기본 사전 정렬입니다. 위의 코드는 첫 번째 목록에서 파일 수를 가져오므로 기본적으로 두 디렉터리에 동일한 수의 파일이 있다고 가정합니다.
(두 디렉토리의 파일 이름 목록이 동일하지 않은 경우 이것이 얼마나 의미가 있는지 잘 모르겠습니다.)