我需要从一个文件创建两个文件。条件是:如果输入行中的列数等于11,则行将复制到输出1。如果输入行中的列数等于 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
(行中的字段数)。本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句