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

如何用Awk按第3列指定位置的子串筛选并输出行?

提取指定条件的文本行

需求

现有一个3列的文本文件a.txt,内容如下:

1   a1  abcd
2   b1  acdb
3   c1  abcd 

需要提取**第3列第2位字符为'b'**的行,预期输出:

1   a1  abcd
3   c1  abcd 

正确命令实现

你之前尝试的命令仅修改了第3列内容并输出所有行,未实现过滤需求。以下是两种正确的awk实现方式:

方式一:正则匹配

awk '$3 ~ /^.b/ {print}' a.txt

通过正则^.b匹配第3列前两位:第一位为任意字符,第二位为'b',满足条件则打印整行。

方式二:字符截取判断

awk 'substr($3,2,1) == "b" {print}' a.txt

用substr($3,2,1)提取第3列的第2位字符,判断其等于'b'时打印整行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 11:32:03