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

相关内容