2013-05-01 78 views
0

我想通过这种方式来追加行一些新的文件使用awk:如何追加行到一个新的文件,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) 

任何提示?

感谢

回答

2

目录bed必须存在,因此与mkdir bed首先创建它,你运行脚本之前或在BEGIN块。你还应该加上括号输出文件:

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

注意:您不需要结束与;行,如果你有一行一条语句和BEGINEND块是可选的。

+1

...对不起...我创建床上目录第一;然后我用Dropbox中的选择性同步取消选择它,然后它就消失了。尽管如此,感谢您的快速回答..就是这样。 – gc5 2013-05-01 11:03:03