2014-11-28 2 views
0
return array(
    'cookieVectorValue' => '---------', 
    'cookieStandardKey' => '--------', 
    'appVersion' => 20.3, 
    'dbconfig' => value(
    ) 

У меня есть имя файла, называемое config.txt (содержимое файла показано выше).Увеличение номера версии с использованием сценария оболочки

appVersion значение должно быть увеличено на 1. каждый раз. Например, appVersion значение 20.3 должно быть 20.4. если значение appVersion равно 10, оно должно быть 11.

Может кто-нибудь рассказать мне, как это сделать, используя сценарий оболочки Unix? Заранее спасибо.

+0

, так что вы хотите, чтобы при запуске скрипта они должны увеличиваться на один – Hackaholic

+0

Да. Я хочу запустить скрипт. Спасибо – Ela

+0

Что происходит после 23.9? 23.10 или 24.0 или что-то еще? – tripleee

ответ

0

t его изменение числа

awk -F'=>|,' -v q="'" '$0~"appVersion"q{$2=0+$2+0.1;print $1 " => " $2 ",";next } 
    $0~"appVersion2"q{$2=0+$2+1;print $1 " => " $2 ",";next }7' file 

если вы хотите сохранить обратно в файл каждый раз, когда вы выполняете его на файл:

awk ... file > newFile && mv newFile file 

с вашими данными, работает следующим образом: (я назвал файл как f):

kent$ awk -F'=>|,' -v q="'" '$0~"appVersion"q{$2=0+$2+0.1;print $1 " => " $2 ",";next } 
         $0~"appVersion2"q{$2=0+$2+1;print $1 " => " $2 ",";next }7' f>newF && mv newF f 

kent$ grep appVer f 
'appVersion' => 20.4, 
'appVersion2' => 11, 

kent$ awk -F'=>|,' -v q="'" '$0~"appVersion"q{$2=0+$2+0.1;print $1 " => " $2 ",";next } 
         $0~"appVersion2"q{$2=0+$2+1;print $1 " => " $2 ",";next }7' f>newF && mv newF f 

kent$ grep appVer f                  
'appVersion' => 20.5, 
'appVersion2' => 12, 

kent$ awk -F'=>|,' -v q="'" '$0~"appVersion"q{$2=0+$2+0.1;print $1 " => " $2 ",";next } 
         $0~"appVersion2"q{$2=0+$2+1;print $1 " => " $2 ",";next }7' f>newF && mv newF f 

kent$ grep appVer f                  
'appVersion' => 20.6, 
'appVersion2' => 13, 
+0

Спасибо большое Кент :) Это работает .. – Ela

0

вы можете попробовать это:

awk '{if(match($0,/appVersion/)>0){ split($0,a,"=>");sub(",","",a[2]);printf("%s => %s,\n",a[1],a[2]+1)}else{print $0}}' file 

выход:

return array(
'apiSingnatureVersion' => '001', 
'apiAccessKey' => '-----------------', 
'apiPrivatekey' => '----------', 
'cookieVectorValue' => '---------', 
'cookieStandardKey' => '--------', 
'appVersion' => 21.3, 
'appVersion2' => 11, 
'dbconfig' => array(
--------------- 
--------------- 
) 

Я не уверен, что вы собираетесь для того чтобы достигнуть, сначала сделайте резервную копию файла, то сделать это

, чтобы сохранить его:

awk '{if(match($0,/appVersion/)>0){ split($0,a,"=>");sub(",","",a[2]);printf("%s => %s,\n",a[1],a[2]+1)}else{print $0}}' file > nwfile;mv nwfile file 
+0

надеюсь, что это вам помогло :) – Hackaholic

+0

@smartboy Я не видел, что скоро это будет обновлено :) – Hackaholic

+0

Спасибо, парень, это работает..бат 20.3 должно быть 20.4. Я упомянул об этом в своем вопросе. (значение appVersion 20.3 должно быть 20.4, а значение appVersion2 10 должно быть 11). – Ela

Смежные вопросы