在终端中使用sed替换文件中的文本

che*_*one 1 terminal command sed

我在这个文件中有这个文字:

test.php的

$databases = array (
  'default' => 
  array (
    'default' => 
    array (
      'database' => 'original',
      'username' => 'root',
      'password' => 'root',
      'host' => 'localhost'
    ),
  ),
);
Run Code Online (Sandbox Code Playgroud)

在终端运行此行以用'new'替换'original'

sed -i 's/original/new/g' test.php
Run Code Online (Sandbox Code Playgroud)

更新:错误消息是:

sed:1:"test.php":未定义标签'est.php'

问题是什么?

更新2:

如果我只是运行:(我删除'-i')

sed 's/original/new/g' test.php
Run Code Online (Sandbox Code Playgroud)

我看到终端中修改了文件文本.但是文件没有保存.

tri*_*eee 14

在BSDish平台(包括Mac OSX)上,该-i选项需要一个参数.

sed -i '' 's/original/new/g' test.php
Run Code Online (Sandbox Code Playgroud)

注意空参数''.