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

如何提取文本中竖线之间的ID内容,使用sed命令无法生效该如何解决

可行实现方案

方案1:awk(最推荐)

直接指定竖线为分隔符,输出第二个字段即可,不受第一个竖线前字符串内容影响:

awk -F '|' '{print $2}' 目标文件.txt
  • 针对你的示例输入,执行后直接输出三个ID值,无多余内容。

方案2:sed实现

你之前使用的是行范围匹配语法,不符合提取需求,改用捕获组替换即可:

sed 's/^[^|]*|\([^|]*\)|.*/\1/' 目标文件.txt
  • 逻辑说明:匹配从行首到第一个竖线的所有内容,捕获两个竖线之间的非竖线字符,再匹配第二个竖线到行尾的内容,最终整行替换为捕获到的ID值。

方案3:cut实现

轻量场景下用cut更简单:

cut -d '|' -f 2 目标文件.txt
  • 原理和awk一致,指定竖线为分隔符后取第二个字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 18:48:04