按列值过滤并写入文件

按列值过滤并写入文件

我有一个这样的表:

BB1520_v1.0_0103 外显子 3329 3601
BB1520_v1.0_0103 外显子 3650 4040
BB1520_v1.0_0089 外显子 1 862
BB1520_v1.0_0089 外显子 1312 1357
BB1520_v1.0_0089 外显子 1423 1531
BB1520_v1.0_0084 外显子 5196 5283

我想按第 1 列中的值提取行,并将它们保存到 3 个不同的文件中。

我尝试使用以下代码但没有成功:

 awk -F, '{print >$1".txt"}' file.txt

答案1

您有正确的方法,但您需要在空格上进行字段分割,而不是逗号(-F,)。我将你的问题解释为“这些行应该保存到名称与第一列中的名称相同的文件中”。

$ cat file.txt 
BB1520_v1.0_0103        exon    3329    3601
BB1520_v1.0_0103        exon    3650    4040
BB1520_v1.0_0089        exon    1       862
BB1520_v1.0_0089        exon    1312    1357
BB1520_v1.0_0089        exon    1423    1531
BB1520_v1.0_0084        exon    5196    5283
$ awk '{ print >$1".txt"}' file.txt
$ cat BB1520_v1.0_0103.txt 
BB1520_v1.0_0103        exon    3329    3601
BB1520_v1.0_0103        exon    3650    4040

相关内容