스크립트를 통해 디렉터리의 모든 .csv 파일을 반복하고 각 루프의 결과를 다른 디렉터리의 별도 .csv로 출력합니다.

스크립트를 통해 디렉터리의 모든 .csv 파일을 반복하고 각 루프의 결과를 다른 디렉터리의 별도 .csv로 출력합니다.

저는 한 디렉터리에서 여러 .csv 파일을 통해 스크립트를 실행하고 각 파일의 출력을 다른 디렉터리로 보내는 작업을 하고 있습니다. .csv 파일을 하나씩 실행할 수 있지만 스크립트를 살펴봐야 하는 파일이 100개 있습니다. 개인적으로 매우 간단합니다. 여기에서 .csv 파일을 추출 Test_Folder하고 스크립트 출력을 다음 주소로 보냅니다 Results.

bash run_example.sh Test_Folder/df1.csv >> Results/results1.csv

그러나 모든 항목에 대해 루프를 실행하려고 하면 다른 디렉터리로 인해 일부 오류가 발생합니다. 나는 몇 가지 다른 것을 시도했습니다.

for csvfile in Test_Folder/*.csv;
do
    bash run_example.sh $csvfile >> Results/test_results.csv
done

위의 내용은 분명히 작동하지만 test_results.csv각 루프 후에 덮어쓰여집니다.

for csvfile in Test_Folder/*.csv;
do
    bash run_example.sh $csvfile >> "Results/results_${csvfile}.csv"
done

위의 내용을 실행하려고 할 때 다음과 같은 문제가 발생했습니다.

bash: Results/results_Test_Folder/df1.csv.csv: No such file or directory

$csvfile따라서 파일 자체뿐만 아니라 경로를 사용하는 것처럼 보입니다 . 이것은 분명히 존재하지 않는 디렉토리를 검색하게 됩니다. 다른 SE 게시물을 참조로 사용하여 위 코드의 다른 변형을 시도했지만 다른 디렉토리를 구체적으로 언급하는 게시물은 본 적이 없습니다.

입력 파일 results.csv과 동일한 수의 파일로 새 디렉토리를 채우려고 합니다 results1.csv. results2.csv각 루프마다 증가하고 출력 파일 이름에 추가되는 숫자만큼 간단한 것조차도 완벽하게 작동합니다. 어떤 안내라도 대단히 감사하겠습니다!

관련 정보