如何在awk中为多个输出文件添加输入文件名?

时间:2015-03-30 00:02:52

标签: bash awk

问题可能微不足道。我想找到一种方法将输入文件名的一部分添加到由以下awk脚本生成的多个输出中。

脚本:

zcat $1 | BEGIN {
    # the number of sequences per file
    if (!N) N=10000;

    # file prefix
    if (!prefix) prefix = "seq";    

    # file suffix
    if (!suffix) suffix = "fa";

    # this keeps track of the sequences
    count = 0
}

# skip empty lines at the beginning
/^$/ { next; }

# act on fasta header
/^>/ {
    if (count % N == 0) {
        if (output) close(output)
        output = sprintf("%s%07d.%s", prefix, count, suffix)        
    }
    print > output
    count ++
    next
}

# write the fasta body into the file
{
    print >> output
}

$1变量中的输入为30_C_283_1_5.9.fa.gz

脚本生成的输出文件是 myseq0000000.famyseq1000000.fa等等......

我想要输出 30_C_283_1_5.9_myseq000000.fa30_C_283_1_5.9_myseq100000.fa ....

期待在这方面提供一些意见。

1 个答案:

答案 0 :(得分:0)

有一种方法可以从Awk脚本中引导输出: https://www.gnu.org/software/gawk/manual/html_node/Redirection.html