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

为何Kali Linux中无g命令的sed仍替换所有行的匹配内容?

问题原因及解决方法

核心原因

sed 的 s 替换命令默认会遍历文件的每一行,对每一行中第一个匹配到的目标字符串进行替换。你执行的sed 's/I/You/'没有指定行范围,所以它会处理文件里的所有行——只要某一行存在“I”,该行的第一个“I”就会被替换成“You”,这就是为什么两行的“I”都被替换了。

实现预期效果的方法

如果只想替换第一行的“I”,需要给替换命令加上行地址限定,指定仅处理第1行:

sed '1 s/I/You/' <oldfile >newfile

这里的1就是行地址,表示只对第1行执行后续的替换操作,第2行的“I”会被保留。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 08:47:00