MacOS与Linux下sed命令匹配替换的差别_macos_sed_-i.md
Macos
例如将test.txt文件内的以1开头的行,替换为"aa/bb"
使用命令
sed -i ".bak" "s/1.*/aa\/bb/" test.txt
其中:
-i ".bak"是直接操作文件并添加.bak作为备份文件名称,如果不需要备份文件,则使用-i “”
s/代表’“substitue”,即替换
1.* 代表以1开头的所有字符串,.*在正则表达式中表示所有字符
aa/bb使用了转义字符表示aa/bb。
注意最后还需要一个分界符/,否则会提示unterminated substitute in regular expression
分界符也可使用|,那么特殊符号就不需要转义字符了,命令就变成:
sed -i ".bak" "s|1.*|aa/bb|" test.txt
如果需要在文件中替换多个相同的字符串,需要添加global参数g,即:
sed -i ".bak" "s/1.*/aa\/bb/g" test.txt
或者
sed -i ".bak" "s|1.*|aa/bb|g" test.txt
Linux
将文件test.txt中所有的a替换成b
sed -i "s/a/b/g" test.txt
看到差别了吧。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)