Bash如何匹配指定列不区分大小写的全词子串并输出完整行
可用的Bash命令方案
方案1:直接用awk完成全流程(推荐)
不需要拆分管道,直接在awk内完成匹配并输出整行:
awk -F ',' '$3 ~ /\<dee\>/i' your_file.csv
参数说明:
-F ',':指定逗号为字段分隔符$3 ~ /\<dee\>/i:对第三列做匹配校验,\<和\>表示词首、词尾边界,确保是全词匹配,末尾的i表示不区分大小写- awk默认行为是匹配条件成立就输出整行,所以自动保留所有列信息
方案2:用grep直接匹配整行规则
如果你更习惯用grep实现,可以直接写正则匹配第三列的规则:
grep -iE '^[^,]+,[^,]+,[[:<:]]dee[[:>:]]' your_file.csv
参数说明:
-i:不区分大小写匹配-E:启用扩展正则表达式- 正则逻辑:从行首开始跳过前两个逗号分隔的字段,在第三字段内匹配全词
dee
两种方案执行后都会输出符合要求的结果:
c,fee,c dee h,aee,t Dee
内容的提问来源于stack exchange,提问作者ng zu shen
相关产品推荐
相关产品推荐

