1

我正在尝试以这种方式使用 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)

有什么提示吗?

谢谢

4

1 回答 1

2

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

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

;注意:如果每行有一个语句并且BEGINandEND块是可选的,则不需要以结束行。

于 2013-05-01T10:57:25.523 回答