需要一个脚本来编辑文件 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 这适用于您正在讨论的新示例需要一个脚本来编辑文件 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");}
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
}