Проблема
При попытке добавить строку в файл конфигурации конейтнера lxc в proxmox в директории /etc/pve/lxc/ с помощью модуля ansible lineinfile у меня ничего не вышло.
При попытке использовать sed я получил вот такую ошибку:
sed: preserving permissions for ‘...’: Operation not permitted
Довольно странно. При попытке выполнить lsattr я получал:
lsattr: Function not implemented While reading flags on ...
Судя по всему, sed не удавалось переименовать отректированную копию файла и заменить ею исходный файл.
Решение
Я так и не понял почему это происходит, однако выполнить задуманное мне удалдось с помощью perl:
perl -i -pe 's/foo/bar/g' ./filename
Также нормально работает awk:
awk -v line='line to add' 'FNR==NR && line==$0{f=1; exit} END{if (!f) print line >> FILENAME}' ____path_to_file____
Discussion