我需要从一个文件创建两个文件。条件是:
如果输入行中的列数等于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/