2016-05-05 4 views
0

Как я могу сделать это в Python 2.7:ПИТОН синтаксического анализа файла и замещающие параметры рекурсивно

Я один файл с именем, например, Параметр-values.txt, который содержит 10 или более параметров с значениями, как необходимому это:

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

и т.д ..

, а также у меня есть много файлов, где определены эти переменные (но не все Params в каждый файл).

File1:

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

another bash commands 

Итак, мой вопрос: Как я могу рекурсивно в цикле найти файлы, которые содержат эти параметры/переменные и подменить параметры в этих файлах с моей в файле параметров.

Благодарим за каждый соответствующий ответ.

+0

Вы хотите заменить 'param1' в File1 с другим значением? (Какой? Должен ли он быть «hello», 'dd' или' hello, dd'?) – zezollo

+0

Должен 'parameter-values.txt' содержать значения точно так, как вы описываете? Разве это не простой файл «ini»? – zezollo

+0

Это может быть все, но я никогда не использовал ini, и я хочу изменить param1 во всех файлах не только в файле1, то во всех файлах, которые его содержат, а calues ​​- «hello, dd» или что-то еще. – tester125

ответ

0

Решение:

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 

Я думаю, что это самое лучшее и простое решение hwhich работает правильно

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