如何使用sed更改mac上的行(Darwin)

时间:2014-03-20 00:40:44

标签: linux bash sed darwin

我不了解达尔文与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

提前感谢帮助这个沮丧的灵魂。

1 个答案:

答案 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本身就意味着没有备份文件。