Как с помощью SED запретить запись если значение существует?
Есть файл 1.conf c содержимым:
/opt/pki/ca.crt
/opt/pki/ca.key
Нужно добавить после ".crt" например "Ivanov"
Тут все понятно:
#!/bin/bash
filename="/opt/pki/1.conf"
search=".crt"
replace="Ivanov"
if [[ $search != "" && $replace != "" ]]; then
sed -i "s/$search/& $replace/" $filename
fi
Как быть если в файле /opt/pki/1.conf уже содержится:
/opt/pki/ca.crt Ivanov
/opt/pki/ca.key
При повторном запуске добавляет "/opt/pki/ca.crt Ivanov Ivanov" :(
ну так сделай проверку grep " че ищем" /home/1.conf || sed то заменяем
|| облегченая конструкция тру фелс завершения программы, если греп найдет строчку будет тру, соответтвенно тебе нужен фелс.
И того строки нет ,то сед
строка есть то пропускаем
ну или регулярку нормально составь.