我需要从一个文件创建两个文件。条件是:
如果输入行中的列数等于11,则行将复制到output1。
如果输入行中的列数等于10,则行将复制到output2。
少列输入示例:

Id_animal Id_SNP Farm Allele
ID01 rs01 A 1
ID02 rs01 1
ID03 rs01 B 2
ID04 rs01 0

在这种情况下,行1和行3将转到output1,行2和行3将转到output2。
输出1
ID01 rs01 A 1
ID03 rs01 B 2

输出2
ID02 rs01 1
ID04 rs01 0

但在我的例子中,行数是45927948,列的最大值是11,最小值是10。

最佳答案

使用awk,您可以这样做awk -f script.awk input,script.awk是:

NR == 1 { next }
NF == 4 { print > "output1" }
NF == 3 { print > "output2" }

NF条件下修改4和3(行中的字段数)。
第一行跳过标题。

关于linux - 如何使用一个列数作为标准从一个文件创建两个文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42875917/

10-12 23:45