如何自动化bash中所有文件的功能? 我有两个C++代码和一千个以上的文件。我想在bash中实现这一点的自动化。 现在我有 #!/bin/bash for each in find \data -iname '*.dat'; do ./ppd $file; ./porenet $file; done
作为一个实验,我在文件夹中放了两个.dat文件,而不是1000个。但它只将第一个函数应用于两个.dat文件。第二个(porenet)仅应用于第一个.dat文件。 我需要改变什么才能让它工作?如何自动化bash中所有文件的功能? 我有两个C++代码和一千个以上的文件。我想在bash中实现这一点的自动化。 现在我有 #!/bin/bash for each in find \data -iname '*.dat'; do ./ppd $file; ./porenet $file; done,bash,ubuntu,Bash,Ubuntu,作为一个实验,我在文件夹中放了两个.dat文件,而不是1000个。但它只将第一个函数应用于两个.dat文件。第二个(porenet)仅应用于第一个.dat文件。 我需要改变什么才能让它工作? 谢谢我想你的问题是想在所有*.dat文件上运行ppd,然后运行porenet。如果是这样的话,您可能可以像这样轻松地使用GNU parallel进行并行处理: find . -name \*.dat -print0 | parallel --dry-run -0 './ppd {}; ./porenet {
谢谢我想你的问题是想在所有
*.dat
文件上运行ppd
,然后运行porenet
。如果是这样的话,您可能可以像这样轻松地使用GNU parallel进行并行处理:
find . -name \*.dat -print0 | parallel --dry-run -0 './ppd {}; ./porenet {}'
如果输出看起来像您想要的,请删除--dry run
,然后再次实际运行
请先备份。
$file
未设置\data
与data
相同。你的循环迭代了四个字符串,find
,data
,-iname
,和*.dat
。请看一看:@Cyrus,我按照这个服务的建议更正了它,现在它不能在一个目录中处理所有文件了吗?或者有些在子目录中?