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

如何使用sed工具将字符替换为其他字符?

嘿,我来给你拆解一下用sed做字符替换的各种场景,这工具处理文本替换简直得心应手!

基础替换语法

sed的核心替换命令格式是这样的:

sed 's/要替换的字符/目标字符/' 文件名

这里的s是substitute(替换)的缩写,中间的/是分隔符(你也可以用其他符号比如#,只要前后一致就行)。

举个简单例子:
如果你的当前输出是:

I love cat, cat is cute
期望输出是:
I love dog, cat is cute
那执行这个命令就搞定:

sed 's/cat/dog/' test.txt

不过要注意,默认只会替换每行的第一个匹配项,上面的例子里第二个cat就没被换掉。

全局替换(替换所有匹配项)

如果要把一行里所有符合的字符都换掉,只要在命令末尾加个g(global,全局)就行:

sed 's/cat/dog/g' test.txt

这样再运行上面的例子,输出就会变成:

I love dog, dog is cute

处理特殊字符

如果要替换的是/、&、*这类有特殊含义的字符,记得要加转义符\:
比如把所有的/换成#,命令就是:

sed 's/\//#/g' test.txt

另外,&在sed里代表“匹配到的内容”,比如你想给所有数字加上括号:
当前输出:

123 apple 456 banana
期望输出:
(123) apple (456) banana
用这个命令:

sed 's/[0-9]\+/(&)/g' test.txt

这里[0-9]\+匹配连续的数字,(&)就是把匹配到的数字包在括号里。

直接修改原文件

默认sed只是把修改后的内容输出到屏幕,如果想要直接修改原文件,加上-i参数:

sed -i 's/old/new/g' test.txt

注意:如果是macOS系统的sed,需要加个空参数,写成:

sed -i '' 's/old/new/g' test.txt
实战小例子

假设你的当前输出是:

red;green;blue
期望输出是:
red,green,blue
那直接运行:

sed 's/;/,/g' test.txt

就完美实现啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:42:33