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

如何使用sed删除每行中从ANARCI到首个竖线|的内容?

sed 文本替换问题解决方案

你之前写的命令不生效有两个核心原因:

  • .*是贪婪匹配规则,会直接匹配到整行最后一个竖线,而非你需要的第一个竖线
  • 你对|加了转义符变成\|,在sed默认的基础正则表达式语法中,\|代表“或”逻辑运算符,你写的表达式相当于匹配「ANARCI开头的任意内容」或者「空值」,完全不符合替换需求

正确替换命令

直接使用排除匹配规则匹配到第一个竖线即可,命令如下:

sed 's/ANARCI[^|]*|//' 待处理的文件名

命令说明

  • [^|]*代表匹配所有非|的字符,会自动停在第一个出现的|位置
  • 不需要加g参数,每行仅需要替换1次

直接修改原文件的写法

如果需要直接修改原文件,不需要输出到终端:

  • 多数Linux系统默认的GNU sed:
sed -i 's/ANARCI[^|]*|//' 待处理的文件名
  • macOS自带sed:
sed -i '' 's/ANARCI[^|]*|//' 待处理的文件名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 07:15:08