sed undefined label on MacOS, FreeBSD
A quick fix is to prepend your string expression with an empty string: ''
For example: instead of
sed -i 's/foo/bar/g' text.txt
write:
sed -i '' 's/foo/bar/g' text.txt
This should work across different OS (Linux, MacOS, Windows)
--dopexxx
来源:http://stackoverflow.com/questions/12272065/ddg#69955786
问题一
sed编辑命令:【sed -i 's/a/b/g' test.txt】
报错:sed: 1: "test.txt": undefined label 'est.txt'
解决方案:增加一个备份的追加名【sed -i '.bak' 's/a/b/g' test.txt】
原因:mac强制要求备份,否则报错
当然可以不使用其他备份名字,只是用’',就可以只保留一份
sed -i ‘’ ’s/a/b/g’ test.txt
问题二
sed追加命令:【sed -i '' "/a/a\xxx” test.txt】匹配到a字符后追加xxx内容
报错:sed: 1: "2a\test\": extra characters after \ at the end of a command
解决方案:在追加内容前换行,且要用双斜杠\\
sed -i '' "/a/a\\
xxx" test.txt
但是这又有一个新的问题,追加的内容是显示在下一行的前面,没有独立占据一行

使用\\n啊\n什么的都无效,其实只要在字符串后面直接输入\\然后回车换行就有效了,如下图所示。

备注:在某一行前插入用/i,例如在匹配到a的前面一行加入yyy
sed -i '' "/a/i\\
xxx" test.txt
mac上的sed -n之类的与linux系统上使用方法一样
来源:https://www.cnblogs.com/meitian/p/5907562.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!