私は、あるディレクトリで複数の.csvファイルを介してスクリプトを実行し、各ファイルの出力を別のディレクトリに送信する作業をしています。 .csvファイルを1つずつ実行できますが、スクリプトを見なければならないファイルが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
各ループごとに増加し、出力ファイル名に追加される数字と同じくらい単純なものでさえも完全に機能します。どんな案内でも大変感謝します!