Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.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
Unix 进入每个目录并在该目录中运行脚本的Bash脚本_Unix - Fatal编程技术网

Unix 进入每个目录并在该目录中运行脚本的Bash脚本

Unix 进入每个目录并在该目录中运行脚本的Bash脚本,unix,Unix,我有一个bash脚本,用于提取我需要的一组数据,当我在初始输入文件所在的目录中时,它非常有效 #!/bin/bash sed -n '/FIRST KEYWORD/,/KEYWORD THAT STOPS SEARCH/p' initial_input.out > tmp1.dat sed -n '/SECOND KEYWORD/,/KEYWORD THAT STOPS SEARCH/p' tmp1.dat > tmp2.dat awk '/parameter name/' sp

我有一个bash脚本,用于提取我需要的一组数据,当我在初始输入文件所在的目录中时,它非常有效

#!/bin/bash 
sed -n '/FIRST KEYWORD/,/KEYWORD THAT STOPS SEARCH/p' initial_input.out >  tmp1.dat
sed -n '/SECOND KEYWORD/,/KEYWORD THAT STOPS SEARCH/p' tmp1.dat > tmp2.dat
awk '/parameter name/' spintmp2.dat
实际上,我使用
sed
剪切了我需要的文件部分,然后使用awk获取与“参数名”关联的行。我没有立即执行awk的原因是字符串“parameter name”在
initial\u input.out
文件中重复了很多次

我的输出可能看起来像

parameter name    25.3  18.0  4.0 
parameter name    4.3   51.3  54.0
parameter name    1.3   1.4   1.5
现在我想对所有子目录中的每个初始输入文件都这样做。例如,我所在的目录包含名为“一”、“二”和“三”的子目录,每个子目录都包含自己的初始输入文件(可以用*.out表示)

如何从当前目录运行此脚本,并同时从所有子目录接收输出,同时知道哪个输出来自哪个子目录


多谢各位

可能在
查找的结果上循环:

find . -name "*.out" | while read path; do
    echo "The path is $path"
    # do stuff
done