我正在努力通过脚本从一个目录运行多个 .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
输入文件相同数量的文件的新目录,so results1.csv
、results2.csv
等等。即使是像数字这样简单的东西,随着每次循环而递增并添加到输出文件名中,也是完美的。任何指导将不胜感激!