多次启动程序

时间:2013-04-29 17:32:47

标签: linux macos bash

我正在使用Mac Os。这是我的程序(两部分)的命令行代码

nucmer --mum file1.txt file2.txt

show-snps -Clr -x 2 out.delta > out_file1.snps

程序的第一部分创建文件out.delta。我的file2.txt总是一样的,但我想用不同的file1.txt启动这两个部分35000次。所有文件1都位于同一目录中。

是否可以使用BASH进行?

3 个答案:

答案 0 :(得分:2)

将所有输入文件保存在目录中。创建一个包装器脚本以调用nucmer脚本,然后调用show-snps脚本。您的包装器脚本将接受文件目录的路径作为输入。迭代目录中的所有文件并调用两个脚本。

答案 1 :(得分:1)

你可以沿着这些方向做点什么:

find . -maxdepth 1 -type f -print | grep -v './out_' | while read f
do
  b=$(basename ${f})
  nucmer --mum ${f} file2.txt
  show-snps -Clr -x 2 out.delta > out_${b}.snps
done

find位查找当前目录中的所有文件。 grep过滤掉以前的输出文件,以防您之前运行过一些文件。 basename行剥离前导./和尾随扩展,然后使用输入文件名和基于basename输出的输出文件名运行两个程序。

答案 2 :(得分:0)

如果你没有得到一个参数列表太长的错误,你可以使用:

for f in file*.txt; do nucmer --mum $f second.txt; show-snps -Clr -x 2 out.delta > out_${f%.txt}.snps; done