在awk中选择等于不同值的行
我有一个数据框,它的第一列有这样的动物品种的代表性数量:
1 12M08413 12M08388 12M08414 1 -9 A A G G G G
1 12M08416 12M08412 12M08415 1 -9 A A A G G G
1 12M08422 12M08397 12M08421 1 -9 A A A G G G
2 12M08423 12M08395 12M08396 2 -9 A A G G G G
2 12M08424 12M08392 12M08425 1 -9 A A A G G G
2 12M08426 12M08399 12M08411 1 -9 A A G G G G
3 12M08428 12M08400 12M08403 2 -9 A A G G G G
3 12M08434 12M08410 12M08417 1 -9 A A G G G G
4 12M08435 12M08389 12M08394 1 -9 A A A G G G
4 12M08437 12M08390 12M08427 1 -9 A A A G G G
我想在第一列中获得等于 1 或 3 的行。例如:
1 12M08413 12M08388 12M08414 1 -9 A A G G G G
1 12M08416 12M08412 12M08415 1 -9 A A A G G G
1 12M08422 12M08397 12M08421 1 -9 A A A G G G
3 12M08428 12M08400 12M08403 2 -9 A A G G G G
3 12M08434 12M08410 12M08417 1 -9 A A G G G G
我已经做好了:
awk -F, '$1 == c("1","3")' my_file.txt
但c(...)不正确。我怎么能做到这一点?
回答
根据您显示的样本,您能否尝试以下操作。
awk '$1==1 || $1==3' Input_file
OP 尝试修复的解释:这只是查看第一个字段是否为 1 或 3,然后打印该行。此外,您不需要使用-F,part ,因为它用于将字段分隔符设置为逗号,并且您没有逗号分隔的行。