检查是否自动爆破文件夹中的多个文件

Checking if blast out for multiple files in a folder automatically

我已经完成了多次小型的 blast runs。现在我想自动检查所有文件是否正确完成并正确结束。

例如,如果我检查特定文件的结尾,我会看到:

n85567:Mel_Sanger mitras$ tail /Volumes/ForBlastLactose/output/S5_1FIL_ab.out 

 Database: SILVA_119_SSURef_tax_silva
    Posted date:  Jan 6, 2015  11:55 AM
  Number of letters in database: 2,241,843,227
  Number of sequences in database:  1,583,830

Matrix: blastn matrix 1 -2
Gap Penalties: Existence: 0, Extension: 2.5

因此,如果正确完成,文件将有结束行 Gap Penalties: Existence: 0, Extension: 2.5

所以现在我的问题是,我如何授权一个脚本来检查文件夹中所有文件的这个特定结尾,并在结尾不匹配时报告文件名。

我正在尝试类似的东西:

 if [[for f in *.out; tail -1 ${f} == "Gap Penalties: Existence: 0, Extension: 2.5"; then echo "All files are fine"; else echo "Error file:"$f; fi  

但作为脚本的新手,我显然也做不好。

谁能帮我做一下。 非常感谢, 米特拉

您通常不应该期望来到 whosebug.com 并期望人们为您编写代码。我相信你可以从这里拿走它。

$ cat endcheck
#!/bin/bash
for i in *.txt;
do
    s=$(tail -1 $i)
    if [ "$s" != "Gap Penalties: Existence: 0, Extension: 2.5" ]
    then
        echo File $i does not have the correct ending.
    fi
done

pwatson@tmc002 ~/y
$ ./endcheck
File t1.txt does not have the correct ending.