需要一个脚本来编辑文件 php文件包含您的示例文本: <?php class DATABASE_CONFIG { public $default = array( 'datasource' => 'Database/Mysql', 'persistent' => false, 'host' => 'hostname', 'login' => 'username', 'password' => 'password', 'database' => 'database_name', 'prefix' => '', //'encoding' => 'utf8', ); public $test = array( 'datasource' => 'Database/Mysql', 'persistent' => false, 'host' => 'hostname', 'login' => 'username', 'password' => 'password', 'database' => 'database_name', 'prefix' => '', //'encoding' => 'utf8', ); }

需要一个脚本来编辑文件 php文件包含您的示例文本: <?php class DATABASE_CONFIG { public $default = array( 'datasource' => 'Database/Mysql', 'persistent' => false, 'host' => 'hostname', 'login' => 'username', 'password' => 'password', 'database' => 'database_name', 'prefix' => '', //'encoding' => 'utf8', ); public $test = array( 'datasource' => 'Database/Mysql', 'persistent' => false, 'host' => 'hostname', 'login' => 'username', 'password' => 'password', 'database' => 'database_name', 'prefix' => '', //'encoding' => 'utf8', ); },php,perl,bash,cakephp,Php,Perl,Bash,Cakephp,edit2 这适用于您正在讨论的新示例 kent$ awk '/login/{gsub(/root/,"newLogin");} /password/{gsub(/xxx/,"newPwd");}

edit2

这适用于您正在讨论的新示例

kent$    awk '/login/{gsub(/root/,"newLogin");}                                                                                          
            /password/{gsub(/xxx/,"newPwd");}                                                                                            
            /database/{gsub(/xxx/,"newDB");} 1' php                                                                                      
<?php
class DATABASE_CONFIG {

    public $default = array(
        'datasource' => 'Database/Mysql',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'newLogin',
        'password' => 'newPwd',
        'database' => 'newDB',
        'prefix' => '',
        //'encoding' => 'utf8',
    );

    public $test = array(
        'datasource' => 'Database/Mysql',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'newLogin',
        'password' => 'newPwd',
        'database' => 'cake_test_db',
        'prefix' => '',
        //'encoding' => 'utf8',
    );
}
sed'/login/{s/username/newLOGIN/}/密码/{s/password/newPWD/2}/数据库/{s/database_name/newDB/}'php

php文件包含示例文本:

<?php
class DATABASE_CONFIG {
    public $default = array(
        'datasource' => 'Database/Mysql',
        'persistent' => false,
        'host' => 'hostname',
        'login' => 'username',
        'password' => 'password',
        'database' => 'database_name',
        'prefix' => '',
        //'encoding' => 'utf8',
    );
    public $test = array(
        'datasource' => 'Database/Mysql',
        'persistent' => false,
        'host' => 'hostname',
        'login' => 'username',
        'password' => 'password',
        'database' => 'database_name',
        'prefix' => '',
        //'encoding' => 'utf8',
    );
}
edit2

这适用于您正在讨论的新示例

kent$    awk '/login/{gsub(/root/,"newLogin");}                                                                                          
            /password/{gsub(/xxx/,"newPwd");}                                                                                            
            /database/{gsub(/xxx/,"newDB");} 1' php                                                                                      
<?php
class DATABASE_CONFIG {

    public $default = array(
        'datasource' => 'Database/Mysql',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'newLogin',
        'password' => 'newPwd',
        'database' => 'newDB',
        'prefix' => '',
        //'encoding' => 'utf8',
    );

    public $test = array(
        'datasource' => 'Database/Mysql',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'newLogin',
        'password' => 'newPwd',
        'database' => 'cake_test_db',
        'prefix' => '',
        //'encoding' => 'utf8',
    );
}
sed'/login/{s/username/newLOGIN/}/密码/{s/password/newPWD/2}/数据库/{s/database_name/newDB/}'php

您想同时更改$default和$test还是只更改$test?是的,我想同时更改$default和$test。您想同时更改$default和$test还是只更改$test?是的,我想同时更改$default和$test。它只更改$test块,而不是$default。这是我在脚本中获得的输出,这是我使用的脚本=>它只更改$test块,而不是$default。这是我使用脚本得到的输出,这是我使用的脚本=>
    #!/usr/bin/awk -f

    BEGIN {   FS="'"   

         usr[0] ="usr1"   ;  usr[1] = "user2" 
        pass[0] ="pass1"  ; pass[1] = "pass2" 
          db[0] ="db1"    ;   db[1] = "db2"
    }  
    {
    if ($2 == "login") { 
        $0="\t'login' => '" usr[u] "',"
        u++
    } 
    if ($2 == "password") { 
        $0="\t'password' => '" pass[p] "',"
        p++
    }
    if ($2 == "database") { 
        $0="\t'database' => '" db[d] "',"
        d++
    }
     print
    }