sed命令在mac中不起作用

时间:2012-03-16 20:46:09

标签: bash sed

以下sed命令无法在我的Lion mac上运行。

find . -type f -exec sed -i 's/user_dashboard/user/g' {} \;

我收到此错误

sed: 1: "./vendor/assets/javascr ...": invalid command code .

3 个答案:

答案 0 :(得分:21)

sed的OSX版本与大多数Linux系统中的版本不同。

它扩展了-i选项,让您有机会保存具有不同扩展名的文件,但需要输入该扩展名。

如果您只想覆盖该文件,则需要使用sed -i "" ...sedCmd.... fileName来就地重命名文件。

根据@JamesMcMahon的评论,请参阅此处full doc for OSX/BSD sed

我希望这会有所帮助。

答案 1 :(得分:6)

-i在你的sed版本中可能有不同的含义(不是“就地”)。尝试使用gsed(如果可用)或将-i替换为-e并使用临时文件(以及之后的mv)来模拟它。

答案 2 :(得分:1)

可以在mac上使用sed替换文本文件中的文本。

命令略有不同。

使用:-i,指定一个扩展名,其中sed将在sed操作之前保存原始文件。

运行命令:

  

$ sed -i _bakup -E's / THESTRING / THEGRANDSTRING'/tmp/jestinkt.txt