我正在使用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进行?
答案 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