我不了解达尔文与CentOS。这不是第一个让我失望的命令。确切的命令在CentOS上工作正常但在达尔文上没有。我阅读了关于我的MBP的sed的手册页,理论上,它应该适用于MBP。
有人能告诉我在达尔文上使用sed的正确语法是什么吗?完全相同的命令适用于CentOS服务器。但是,我需要运行的所有文件都存储在我的本地开发笔记本电脑上,这是一个MBP。我不想将我的所有测试文件复制到我们的远程CentOS服务器,只是为了运行这个首先应该工作的愚蠢的cmd。
这是我试图在我的MBP上运行的cmd:
sed -i 's/instance=ge/blah/g' 100usr_defSemaAvail_mult_12hr.jmx
MBP上的错误说明了这个
sed: 1: "100usr_defSemaAvail_ ...": invalid command code u
提前感谢帮助这个沮丧的灵魂。
答案 0 :(得分:3)
在Mac上使用的sed
的BSD版本中,-i
选项需要包含用于备份文件的后缀的参数。如果您不想创建备份文件,则必须提供一个空参数:
sed -i '' 's/instance=ge/blah/g' 100usr_defSemaAvail_mult_12hr.jmx
您输入的命令指定s/instance=ge/blah/g
作为后缀,100usr_defSemaAvail_mult_12hr.jmx
作为编辑命令。
这与Linux上使用的GNU sed
不同,后者希望后缀附加到-i
选项(例如-i.bak
)。所以-i
本身就意味着没有备份文件。