搜索并替换哈希值。我究竟做错了什么?

时间:2015-03-31 14:16:41

标签: regex linux bash

我在文件的开头有以下内容

<?php
return array(
    'DB' => array(
        'extTablesDefinitionScript' => 'extTables.php',
        'host' => '172.17.1.47',

172.17.1.47可以是任何东西。我想将其设置的内容更改为$ip中的内容。所以我试过了

ip="1.2.3.4"
sed -i "s/\'host\' => \'.*\',/$ip/g" /tmp/LocalConfiguration.php
sed -i "s/\(\'host\' => \'\).*/\1$ip\'/g" /tmp/LocalConfiguration.php

但是并没有改变任何事情。

问题

任何人都可以看到有什么问题吗?或者知道更好的方法吗?

1 个答案:

答案 0 :(得分:1)

引用似乎搞砸了。您可以使用:

ip="1.2.3.4"
sed -i.bak -r "s/('host' => ')[^']*'/\1$ip'/" file.php
cat file.php

<?php
return array(
    'DB' => array(
        'extTablesDefinitionScript' => 'extTables.php',
        'host' => '1.2.3.4',