Назад | Перейти на главную страницу

Обновить содержимое одного файла другим в оболочке с шаблоном

У меня есть файл, содержимое которого нужно обновить в другом файле. Как это сделать с помощью команды sed?

A.txt

{
username:someuser,
password:somepass
}

B.txt

{
username:tempuser,
password:temppass
}

Поэтому я хочу, чтобы значения A.txt были обновлены в B.txt. В этих файлах есть другие отдельные данные, поэтому мне нужно использовать сопоставление с образцом.

Я пробовал следующие команды

old=`sed -n "/{/{n;p;n;p}" B.txt` 
new=`sed -n "/{/{n;p;n;p}" A.txt` 
sed -i -e "s/$old/$new/g" B.txt 

Однако новая строка между именем пользователя и паролем удаляется и, следовательно, не может быть заменена.