我们知道,Linux中的SED命令代表流编辑器,主要用于对文件执行功能,这些功能通常是搜索一个词,或者替换它,或者插入一些东西等等。这是一个非常有用的命令,可以在 Linux 内核中找到。
还应该注意的是,OS X 附带的BSD(伯克利软件发行版)sed确实需要-i标志才能工作,而GNU则不需要。
使 GNU 版本的SED在 Mac OS X 上运行的一种方法是直接安装gnu-sed以及默认名称,这将确保您不必在两个操作系统上运行不同的命令.
为了在 Mac OS X 上安装gnu-sed,您可以考虑如下所示的步骤。
brew install gnu-sed --with-default-names
这将安装gnu-sed并且您可以使用它,就像在其他 Linux 机器上使用它一样。
更好的解决方案是使用下面显示的命令,它是就地替换命令以及作为.bak的文件扩展名,这将帮助您为 Mac OS X 和 GNU 实现相同的命令。
sed -i.bak ‘s/sample/new_sample’ filename
在上面的命令中,单引号中的字符串表示我们将特定文件中的单词替换为new_sample。
现在让我们首先在 GNU 上运行上面的命令,看看输出结果如何。
$ sed --version | head -1 GNU sed version 4.2.2 $ echo 'sample' > 1.txt $ sed -i.bak 's/sample/new_sample/' ./1.txt $ ls 1.txt 1.txt.bak $ cat ./1.txt new_sample
$ sed --version 2>&1 | head -1 sed: illegal option -- - $ echo 'sample' > 1.txt $ sed -i.bak 's/sample/new_sample/' ./1.txt $ ls 1.txt 1.txt.bak $ cat ./1.txt new_sample