- 論壇徽章:
- 0
|
本帖最后由 ljwd1000 于 2013-03-19 18:32 編輯
需求:需要將文本指定段落的匹配行做相應(yīng)的替換,請大家?guī)兔?yōu)化一下代碼及處理的思路,謝謝了
原文本- [root@ tmp]# cat 1
- 4 => array(
- 'table_name_inc' => "m_",
- 'mysql_host' => "10.190.141.141:8004",
- 'mysql_name' => "ytser",
- 'mysql_pass' => "yOck_123ok",
- 'mysql_db' => "game2_3",
- 'java_ip'=>'10.190.242.137:9007',
- 'java_ip2'=>'10.190.242.137:8001',
- ),
- 5 => array(
- 'table_name_inc' => "m_",
- 'mysql_host' => "10.190.141.141:8004",
- 'mysql_name' => "ytser",
- 'mysql_pass' => "yOck_123ok",
- 'mysql_db' => "game2_5",
- 'java_ip'=>'10.190.242.86:9007',
- 'java_ip2'=>'10.190.242.86:8001',
- ),
- 6 => array(
- 'table_name_inc' => "m_",
- 'mysql_host' => "10.190.141.141:8004",
- 'mysql_name' => "ytser",
- 'mysql_pass' => "yOck_123ok",
- 'mysql_db' => "game2_5",
- 'java_ip'=>'10.190.242.86:9007',
- 'java_ip2'=>'10.190.242.86:8001',
- ),
- ),
復(fù)制代碼 我自己寫的awk代碼:- [root@ tmp]# cat x.awk
- /5 =>/{print;
- while(getline k){
- if(k~/mysql_host/){
- print gensub(/([^"]*")([^"]*)(.*)/,"\\18.8.8.8\\3","g",k)
- }
- else{
- if(k~/mysql_name/){
- print gensub(/([^"]*")([^"]*)(.*)/,"\\1test\\3","g",k)
- next;
- }
- else{
- print k
- }
- }
- }
- }1
復(fù)制代碼 結(jié)果:- [root@ tmp]# awk -f x.awk 1
- 4 => array(
- 'table_name_inc' => "m_",
- 'mysql_host' => "10.190.141.141:8004",
- 'mysql_name' => "ytser",
- 'mysql_pass' => "yOck_123ok",
- 'mysql_db' => "game2_3",
- 'java_ip'=>'10.190.242.137:9007',
- 'java_ip2'=>'10.190.242.137:8001',
- ),
- 5 => array(
- 'table_name_inc' => "m_",
- 'mysql_host' => "8.8.8.8",
- 'mysql_name' => "test",
- 'mysql_pass' => "yOck_123ok",
- 'mysql_db' => "game2_5",
- 'java_ip'=>'10.190.242.86:9007',
- 'java_ip2'=>'10.190.242.86:8001',
- ),
- 6 => array(
- 'table_name_inc' => "m_",
- 'mysql_host' => "10.190.141.141:8004",
- 'mysql_name' => "ytser",
- 'mysql_pass' => "yOck_123ok",
- 'mysql_db' => "game2_5",
- 'java_ip'=>'10.190.242.86:9007',
- 'java_ip2'=>'10.190.242.86:8001',
- ),
- ),
復(fù)制代碼 |
|