LINUX.ORG.RU

Как считать из файла и заменить значения переменных во втором файле?


1

1

Доброго времени суток всем. Помогите решить прикладную задачку если вам не тяжело.

Есть файл со строками содержащими переменную:

CONTENT=a1
(здесь 7 строчек кода)
CONTENT=a2
(здесь 7 строчек кода)
CONTENT=a3
(здесь 7 строчек кода)
CONTENT=a4
и т.д.

и есть файл содержащий значения переменных:

b1
b2
b3
b4
и т.д.

Необходимо на выходе получить

CONTENT=b1
(здесь 7 строчек кода)
CONTENT=b2
(здесь 7 строчек кода)
CONTENT=b3
(здесь 7 строчек кода)
CONTENT=b4



Последнее исправление: beastie (всего исправлений: 1)

На чем? Не знаю, насколько это уместно, но легко решается на питоне шаблонизатором, к примеру, jinja2.

keyran ★★
()

Однострочником сложно, скриптом скучно.

Deleted
()

Что-то не помню я как проверить номер файла, но «и так сойдет»:

$ more list
b1
b2
b3
b4
$ more commands
CONTENT=a1
(здесь 7 строчек кода)
CONTENT=a2
(здесь 7 строчек кода)
CONTENT=a3
(здесь 7 строчек кода)
CONTENT=a4
$ awk 'NR == FNR { name[NR]=$0; next;} /^CONTENT=/ { print "CONTENT=" name[++i]; next;} {print;}' list commands
CONTENT=b1
(здесь 7 строчек кода)
CONTENT=b2
(здесь 7 строчек кода)
CONTENT=b3
(здесь 7 строчек кода)
CONTENT=b4

Ожидается, что количество элементов в list достаточно.

io ★★
()

Извиняюсь, немного не точно сформулировал вводные данные.

a1, a2, a3, b1, b2, b3 - это все рандомные значения.

т.е. правильнее было бы: a, b, c => d, e, f обозначить

xfceuserxfce
() автор топика
Ответ на: комментарий от xfceuserxfce

Откуда скрипт узнает переменные для замены (a1,a2,a3 / a,b,c), с результирующими все ясно в файле столбиком.

здесь 7 строчек кода

Строчек какого кода? Язык имеется ввиду.

anonymous
()
Ответ на: комментарий от anonymous

Попробовал, не меняются значения. А как сделать, чтобы выбиралась строка содержащая ATTR=ID:domainTxt CONTENT= ? А то я посмотрел, что там есть еще другие строки с CONTENT= которые менять не нужно..

xfceuserxfce
() автор топика

Написать сценарий на языке исполнения команд.

aedeph_ ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.