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

如何解析特定列数据且不丢失其他行列内容?支持大小写不敏感精确匹配

实现方案

方案1:GNU grep 实现(Linux环境默认适用)

使用如下命令即可满足需求:

grep -i -P "(?<![a-zA-Z0-9])${pd}(?![a-zA-Z0-9])" input_file

参数说明

  • -i:开启大小写不敏感匹配,适配输入lg匹配LG的需求
  • -P:启用Perl兼容正则语法,支持环视匹配规则
  • (?<![a-zA-Z0-9]):负向后顾断言,要求匹配值$pd的前一位不能是字母或数字,避免匹配0225、11225这类前缀带其他字符的内容
  • (?![a-zA-Z0-9]):负向前瞻断言,要求匹配值$pd的后一位不能是字母或数字,避免匹配2250这类后缀带其他字符的内容

效果验证

  • 当pd=225时,输出结果:
10.20.223.10|2000-H1|1/1/8|DeviceY_225_|Kenmore
  • 当pd=lg时,输出结果:
10.20.223.10|2000-H1|1/1/2|DeviceX_4021|LG
10.20.225.10|2000-H1|1/1/5|DeviceZ_2050|LG

完全符合预期,且不会修改原行内容,不会丢失行列有效信息。

方案2:awk 实现(全平台兼容,适配无GNU grep的环境如macOS)

如果你的环境不支持GNU grep的-P参数,可以用兼容性更强的awk实现:

awk -v pat="${pd}" 'BEGIN{IGNORECASE=1} {if($0 ~ "(^|[^a-zA-Z0-9])" pat "([^a-zA-Z0-9]|$)") print}' input_file

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 10:30:05