awk - 选择等于awk中不同值的行

标签 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, 部分,因为那是将字段分隔符设置为逗号,而您没有逗号分隔行。

关于awk - 选择等于awk中不同值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65408326/

相关文章:

linux - 在 awk 中应用多个正则表达式

bash - 求和 csv 文件第二列的命令

awk - 如何使用 awk 附加数据列

linux - 使用 awk 和 bash 监视 exec 输出到日志

awk - 使用命令行删除字段,保留标题

shell - AWK 将空列替换为下一行的列值

linux - 使用 awk 和 grep 提取负/正 float

awk - Grep 多个模式并打印模式及其前几行

shell - 用awk返回单引号之间的字符串

linux - 来自不同目录的多个文件作为 awk 的输入