С одним входным файлом, который содержит только комментарии (начиная с #) и строки VARIABLE = значение, возможно ли заменить значение для одной переменной, если оно найдено, и, в противном случае, добавить пару в конец файла, если не найдено?
Мой текущий метод работает, удаляя его в первом проходе, затем добавляя его в конец файла во втором проходе, но этот метод портит порядок строк (и это также две разные команды):
sed -r "/^FOOBAR=.*$/d" -i samefile &&
sed -r "$ a\FOOBAR=newvalue" -i samefile
Есть ли в любом случае, чтобы сделать это, т.е. поддерживать порядок строк в одной строке sed? Если какая-то другая утилита (awk, ...) сделает это, я возьму это на себя.
newvalue
хранится в переменной?