如何使用AWK将行附加到新文件

时间:2013-05-01 10:55:31

标签: awk io-redirection

我试图以这种方式用awk将行添加到一些新文件中:

#!/usr/bin/awk -f

BEGIN { 
    FS = "[ \t|]"; }
{ 
    print $5 "\t" $13 "\t" $14 >> "./bed/" $5 ".bed";
}
END { 
}

使用从awk输入文件(第5个字段)的字段派生的文件名创建新文件。我无法执行此脚本,因为它失败并带有

awk: ./blast2bed.awk:6: (FILENAME=blastout000 FNR=1) fatal: can't redirect to `./bed/AY517392.1.bed' (No such file or directory)

任何提示?

由于

1 个答案:

答案 0 :(得分:2)

目录bed必须存在,因此在运行脚本之前或mkdir bed块中首先使用BEGIN创建目录。您还应该在输出文件周围添加括号:

print $5"\t"$13"\t"$14 >> ("./bed/"$5".bed")

注意:如果每行有一个语句且;BEGIN块是可选的,则不需要使用END结束行。