如何编写脚本来执行多个目录中的文件

如何编写脚本来执行多个目录中的文件

如何编写脚本来执行多个目录中的文件?

问题是这样的:我有很多目录,每个目录都有一个要由 python 脚本读取和分析的数据文件(例如,a.py)。我不想“cd”到每个目录并输入“a.py”。输出保存在每个目录中。

答案1

find将为你发挥魔法。

find -name datafile.dat -execdir ~/a.py '{}' \;

find 在所有子目录中递归搜索与一组规则匹配的文件并对它们执行操作。

-name 规则将让您查找名称与您指定的名称相匹配的文件。您可以使用通配符,例如,“*.dat”将查找所有 .dat 文件。

如有必要,您可以使用 -regex 而不是 -name 来匹配正则表达式模式而不是 glob 模式,因此您可以执行“.*\.dat$”来匹配所有 .dat 文件。

-execdir 将执行您从找到的文件的目录中给出的任何命令,并将“{}”替换为找到的文件。

答案2

您可能可以只使用for循环:

for i in first_dir second_dir third_dir; do
    pushd $i
    a.py
    popd
done

它将pushd $i; a.py; popd使用$iset to运行first_dir,然后再次使用$ias second_dir,最后使用$ias third_dirpushd切换到给定目录,然后popd切换回原来的位置

相关内容