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

使用sed命令执行替换操作时出现重复行问题求助

问题根源

你原地替换时犯了个小细节错误:用了/gp修饰符却没加-n参数。sed默认会输出每一行处理后的内容,而/p又会额外打印替换成功的行,两者叠加就导致每行重复输出了。

修复方法

两种方案任选其一就行:

方案1:去掉多余的/p修饰符

直接保留全局替换的/g,去掉打印的/p:

sed -i'.original' -e 's/id: \"\([^\"\/]*\)\/[^\"]*\"/id: \"\1\"/g' example.txt

方案2:保留/p但加上-n参数

-n会关闭sed的默认输出,只让/p打印替换后的结果:

sed -n -i'.original' -e 's/id: \"\([^\"\/]*\)\/[^\"]*\"/id: \"\1\"/gp' example.txt

验证一下,执行完再看文件:

cat example.txt

就能得到正常的输出:

id: "a"
id: "e"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 01:38:12