You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bash中提取TSV文件中包含6列的行?

提取TSV文件中指定列数的行

用awk实现(最简便推荐)

awk自带字段计数功能,NF变量代表当前行的字段总数,直接判断等于6就输出:

awk 'NF == 6' input.tsv

要是你的TSV是严格用制表符分隔(避免内容里的空格干扰列计数),可以指定分隔符:

awk -F '\t' 'NF == 6' input.tsv

用sed实现

通过正则匹配有6个字段的行(以空白分隔为例,制表符分隔就把[[:space:]]换成\t):

sed -n '/^[^[:space:]]\+\([[:space:]]\+[^[:space:]]\+\)\{5\}$/p' input.tsv

核心逻辑是匹配「1个非空白字段 + 5组空白+非空白字段」的行,刚好对应6列,-n配合p只打印符合条件的行。

用grep实现

用扩展正则匹配同样逻辑:

grep -E '^[^[:space:]]+([[:space:]]+[^[:space:]]+){5}$' input.tsv

内容的提问来源于stack exchange,提问作者ginlucks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 16:57:21