如何在bash中将多个文件设置为程序参数?

时间:2015-04-17 16:23:15

标签: bash shell find

我遇到了这个问题。我在一个文件夹中有很多文件。我还有三个可在shell中执行的程序。 我需要做的是编写一个脚本,它将从文件夹中获取所有文件,这些文件以字符'_'结尾,并通过以下列出的所有三个程序逐个发送“

以字符“_”结尾的文件应设置为program1的输入选项。该程序必须使用不同的选项运行两次。

./program1 -i "fileXXX.14_";
./program1 -i "fileXXX.14_" -n N;

program1创建了两个文件 - “fileXXX.14O”和“fileXXX.14N”。

然后脚本需要将这两个文件作为第二个程序的参数传递。我还需要为输出文件名设置一个选项。

./program2 -o "fileXXX.pos" "fileXXX.14O" "fileXXX.14N";

最后,脚本需要以“fileXXX.pos”作为输入选项运行第三个程序

./program3 -i "fileXXX.pos" ;

理想情况下,文件fileXXX.14N,fileXXX.14O和fileXXX.pos将在此操作后删除。

Mabye这样的事情可以解决问题,

find . -name '*_' -exec  ./sbf2rin -o copy -f `echo {}` \; -exec ....

但我不知道如何根据找到的文件传递其他参数或选项。

任何想法如何做到这一点?它会对我有所帮助......非常感谢!

1 个答案:

答案 0 :(得分:0)

不是100%你想做什么,但这可能适合你

for i in *_;do
    ./program1 -i "$i"
    ./program1 -i "$i" -n N
    ./program2 -o "${i%.}".{pos,140,14N}
    ./program3 -i "${i%.}.pos" ;
    rm "${i%.}".{pos,140,14N}
 done
相关问题