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

如何使用grep从不同长度的URL中提取指定格式的文件ID

解决方案

你可以使用grep的正则匹配能力提取目标文件ID,以下是适配不同环境的实现方法:

方法1:GNU grep 适用(大部分Linux发行版默认携带)

直接使用PCRE环视语法精准匹配,命令如下:

grep -Po '(?<=/)[a-z0-9_-]+(?=/)' foo.txt

参数说明:

  • -P:启用Perl兼容正则规则,支持环视语法
  • -o:仅输出匹配到的片段,不输出整行内容

正则逻辑:

  • (?<=/):限定匹配内容的前一个字符必须是/,不会将/计入匹配结果
  • [a-z0-9_-]+:匹配由小写字母、数字、下划线、短横线组成的连续内容,和你给出的文件ID特征完全吻合
  • (?=/):限定匹配内容的后一个字符必须是/,不会将/计入匹配结果

方法2:兼容POSIX grep 适用(比如macOS默认grep)

如果你的环境不支持-P参数,可以用两段grep组合实现相同效果:

grep -Eo '/[a-z0-9_-]+/' foo.txt | grep -Eo '[^/]+'

逻辑说明:

第一段grep先匹配出前后带/的符合特征的片段,第二段grep过滤掉所有/,剩下的就是目标文件ID。
如果你的文件ID有更特殊的规则(比如固定长度、必须同时包含下划线和短横线),可以调整正则规则进一步缩小匹配范围,以上命令已可以完全匹配你给出的示例输入得到期望输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 02:36:03