2016-05-05 4 views
0

Wie kann ich dies in Python 2.7:PYTHON Parse-Datei und Ersatz Parameter rekursiv

Ich habe eine Datei mit dem Namen z.B. Parameter-Values.TXT, die 10 oder mehr Parameter mit notwendigen Werten wie folgt enthält:

param1=hello,dd 
param2=test 
param3=4g 

etc ..

und ich habe auch eine Menge von Dateien, wo ist diese Variablen definiert (aber nicht alle params in jede Datei).

File1:

#!/bin/bash 
param1="&*" 
param3="&*" 

another bash commands 

Also, meine Frage ist: Wie kann ich rekursiv in Loop-Dateien finden, die diese Parameter enthält/Variablen und Ersatzparameter in diesen Dateien mit meinem eigenen in der Parameter-Datei.

Vielen Dank für jede relevante Antwort.

+0

Sie arbeitet Sie 'param1' in File1 mit einem anderen Wert zu ersetzen? (Welcher? Sollte es 'hallo',' dd' oder 'hallo, dd' sein?) – zezollo

+0

Muss' parameter-values.txt' die Werte genau so enthalten, wie du es beschreibst? Kann es nicht eine einfache "ini" -Datei sein? – zezollo

+0

Es kann alles sein, aber ich habe nie ini verwendet, und ich möchte param1 in allen Dateien ändern, nicht nur in file1, in allen Dateien, die es enthält, und calues ​​ist "Hallo, dd" oder was auch immer. – tester125

Antwort

0

Lösung:

item_arr=(test= param2= paramX=) 
new_param_arr=(test=\"hello\" param2=\"WWW\" paramX=\"XXX\") 

var=0 
for oldstring in "${item_arr[@]}" 
do 
grep -rl $oldstring | xargs sed -i "s/.*$oldstring.*/${new_param_arr[$var]}/g" 
#echo -e "$oldstring\e[92m" 
echo -e "${new_param_arr[$var]}\e[92m" 
var=$((var+1)) 
done 

ich denke, das ist beste und einfachste Lösung hwhich richtig