![通过脚本循环一个目录下的所有.csv文件,并将每次循环的结果输出到不同目录下的单独.csv中](https://linux22.com/image/193050/%E9%80%9A%E8%BF%87%E8%84%9A%E6%9C%AC%E5%BE%AA%E7%8E%AF%E4%B8%80%E4%B8%AA%E7%9B%AE%E5%BD%95%E4%B8%8B%E7%9A%84%E6%89%80%E6%9C%89.csv%E6%96%87%E4%BB%B6%EF%BC%8C%E5%B9%B6%E5%B0%86%E6%AF%8F%E6%AC%A1%E5%BE%AA%E7%8E%AF%E7%9A%84%E7%BB%93%E6%9E%9C%E8%BE%93%E5%87%BA%E5%88%B0%E4%B8%8D%E5%90%8C%E7%9B%AE%E5%BD%95%E4%B8%8B%E7%9A%84%E5%8D%95%E7%8B%AC.csv%E4%B8%AD.png)
我正在努力通过脚本从一个目录运行多个 .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
等等。即使是像数字这样简单的东西,随着每次循环而递增并添加到输出文件名中,也是完美的。任何指导将不胜感激!