Table of Contents

Проблема

При попытке добавить строку в файл конфигурации конейтнера 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____