Замена параметров в файле из файла
Всем привет. Есть файл param.txt вида:
PARAM1=value1
PARAM2=value2
И есть файл example.txt в котором нужно заменить параметры из файла param.txt Файл вот такого вида:
Some text to example. PARAM1, PARAM2
И соответственно в нём нужно заменить PARAM1 на value1 и PARAM2 на value2 соответственно.
Как это можно сделать средствами bash или Python?
Ответы (2 шт):
Если поправить PARAM1 на ${PARAM1} в файле example.txt, то вариант такой:
export $(cat param.txt | xargs); envsubst < example.txt
Будет вывод в консоль. Если нужно в файл, то дописать > output.txt
Попробуйте так на Python:
import re #используем регулярное выражение
f1 = open("Путь к файлу 1.txt", "r") #Поменяйте на путь к файлу 1
f2 = open("Путь к файлу 2.txt", "r") #Поменяйте на путь к файлу 2
rf1 = f1.read()
rf2 = f2.read()
f1.close()
f2.close()
regular1 = re.findall(r'PARAM1=(\S+)', rf1)[0] #PARAM1 замените на ваш параметр1
regular2 = re.findall(r'PARAM2=(\S+)', rf1)[0] #PARAM2 замените на ваш параметр2
new_text = rf2.replace('PARAM1', regular1).replace('PARAM2', regular2) #заменить PARAM1, PARAM2 на ваши параметры1,2
f2 = open("Путь к файлу 2.txt", "w") #Поменяйте на путь к файлу 2
f2.write(new_text)
f2.close()
Данный код предполагает, что в файле 1 после value1 и после value2 есть какой-нибудь знак табуляции. Это может быть перенос строки(т.е. PARAM1=value1 на отдельной строке), пробел, и т.д., что может говорить о конце данного value.