Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何自动化bash中所有文件的功能? 我有两个C++代码和一千个以上的文件。我想在bash中实现这一点的自动化。 现在我有 #!/bin/bash for each in find \data -iname '*.dat'; do ./ppd $file; ./porenet $file; done_Bash_Ubuntu - Fatal编程技术网

如何自动化bash中所有文件的功能? 我有两个C++代码和一千个以上的文件。我想在bash中实现这一点的自动化。 现在我有 #!/bin/bash for each in find \data -iname '*.dat'; do ./ppd $file; ./porenet $file; done

如何自动化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文件,而不是1000个。但它只将第一个函数应用于两个.dat文件。第二个(porenet)仅应用于第一个.dat文件。 我需要改变什么才能让它工作?
谢谢

我想你的问题是想在所有
*.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,我按照这个服务的建议更正了它,现在它不能在一个目录中处理所有文件了吗?或者有些在子目录中?