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

如何使用grep匹配前32个字符之后的指定模式?

筛选时间戳后含指定字符串的行

原命令cat file1.txt | grep -E '04:26'会匹配整行任意位置的04:26,所以时间戳里包含该字符串的行也会被选中。要仅匹配前32个字符(时间戳)之后的内容,可使用以下方法:

方法一:awk(推荐,直观易读)

利用substr函数截取每行第33个字符开始的内容,仅保留该子串匹配04:26的行:

awk 'substr($0, 33) ~ /04:26/' file1.txt

方法二:grep PCRE模式

通过正则表达式限定匹配范围,确保04:26出现在前32个字符之后:

grep -P '^.{32}.*04:26' file1.txt
  • ^.{32}:匹配行首的任意32个字符(即时间戳部分)
  • .*04:26:匹配后续内容中包含04:26的部分

方法三:sed+grep组合

先过滤出目标子串所在的行号,再提取原文件对应行:

sed -n '/04:26/=' <(sed 's/^.\{32\}//' file1.txt) | xargs sed -n '{}p' file1.txt

内容的提问来源于stack exchange,提问作者vishnu m c

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 04:10:40