首页/系统/Linux 运维命令速查/grep -P 使用 PCRE 正则
文本处理77 条

grep -P 使用 PCRE 正则

-P 让 grep 用 PCRE:支持 \d、前后瞻 (?=...)、\K 截断等高级语法,做「提取式」匹配比 sed/awk 顺手。

Linux 运维命令速查系统更新于 2026-10-12
用途高级正则匹配与提取
语法grep -Po '模式' 文件
依赖编译时带 libpcre 的 GNU grep

常用示例

常用示例
grep -Po '(?<=user=)[^&]+' access.log      # 提取 user= 后的值
grep -P '\d{1,3}(\.\d{1,3}){3}' access.log   # 匹配 IPv4
grep -Po 'id=\K\d+' api.log                # \K 丢弃左侧匹配
grep -P '^\S+\s+ERROR' app.log            # 空白类简写用 \s \S
提取场景要配 -o(只输出匹配段);不加 -o 是整行匹配,容易看不出差别。

易错点

  • -P 不是全平台都有(BusyBox、macOS 默认无):跨平台脚本用 grep -E 或 perl -ne 替代
  • 贪心匹配配合 -o 会吞掉多余内容,用 [^&]+ 这类限定字符集保持精确

数据来源与参考

  • man 1 grep(GNU grep 手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌