Se você tiver a nova lista de servidores em um arquivo chamado list.txt
in cwd
:
sed '/^server/{x;//!r list.txt
d}' /etc/ntp.conf
ou, se você não quiser usar um arquivo, mas sim codificar os novos nomes de servidor:
sed '/^server/{x;//!c\
server 1\
........\
server n-1\
server n
d}' /etc/ntp.conf
Isso pressupõe que haja pelo menos uma linha não comentada server
em seu /etc/ntp.conf
(também, não removerá nenhuma server
linhas que estão comentados - você pode alterar o regex para incluir esses também). Se você quisesse inserir essas linhas mesmo se não houvesse entradas de servidor no arquivo original (e, nesse caso, adicionar os novos servidores no final do arquivo), você poderia fazer algo como:
sed '/^server/{x;//!r list.txt
d}
${x;//!r list.txt
x}' /etc/ntp.conf
ou use as mesmas condições, se você preferir usar c\
- deixarei isso como um exercício. Lembre-se de que ao alterar linhas com c\
, todas as barras invertidas e novas linhas incorporadas precisam ser escapadas com uma barra invertida (como no meu exemplo).