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

如何使用grep提取文本文件中单引号内的首个有效字符串?

提取path字段单引号内的非空首个字符串

输入文本(文件in)

path: '', redirectTo: '/login', pathMatch: 'full' },
path: 'login', component: LoginComponent },
path: 'registration',
path: 'employees',
path: 'recruitment',
path: 'work',

期望输出

login
registration
employees
recruitment
work

已尝试命令

grep -Po "path: '\K.*'" in

该命令会匹配到空字符串(第一行)以及单引号后的冗余内容,不符合需求。

正确的grep命令

方案1:正则直接匹配非空内容

grep -Po "path: '\K[^']+(?=')" in
  • 核心逻辑:
    • \K:忽略前面匹配到的path: '前缀
    • [^']+:匹配至少一个非单引号的字符,自动排除空字符串的情况
    • (?='):正向预查,确保匹配内容紧跟单引号,避免捕获多余字符

方案2:先匹配再过滤空行(兼容旧版grep)

grep -Po "path: '\K.*?(?=')" in | grep -v '^$'
  • 第一步.*?(?=')匹配单引号内的所有内容(含空),第二步grep -v '^$'过滤掉空行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 10:20:05