在第一列拆分

时间:2017-01-26 08:34:55

标签: awk split

我正在尝试在第一列上拆分覆盖文件(制表符分隔符),以便每个染色体都有一个特定的文件。

我已经完成了

cat  file.coverage | awk ' { if ($1 == "chrn"){print}}' 

但是这样我就可以为n样本做n次。

我希望以递归的方式使用它:读取第一列,而chr是相同的,将其打印在文件A中,否则打印在文件B中等等。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

正如@Tensibai在评论中指出的那样,你可以做到 -

awk '{print >> $1".log"}' file.coverage

解释 -

awk一行内联只是将行附加到根据第一列中的索引命名的文件中。

您不需要cat filename | awkawk能够自行读取文件。这对cat无用。

另一方面(对于您编写的未来代码),您的初始行可以缩短为 -

awk '$1 == "chrn"' file.coverage

无需if