sed: como inserir um comentário no início de uma linha correspondente

2

Estou tentando escrever um script que comentará a seguinte linha em / etc / sudoers toda vez que eu iniciar uma nova instância do EC2:

Defaults requiretty

Estou assumindo que a melhor maneira de fazer isso é com uma pesquisa inline sed e substituir ou pesquisar e inserir. O problema é que pode haver mais de 1 espaços / abas entre os padrões e requiretty também. O que é uma solução sed eficiente?

    
por imaginative 18.06.2012 / 00:19

2 respostas

4

A resposta de Jay funcionará quase inalterada com sed :

sed -i 's/^Defaults[ \t]+requiretty/# Defaults requiretty/g' /etc/ssh/sshd_config
    
por 18.06.2012 / 00:37
2

Eu usaria o Perl, pessoalmente

perl -pi -e 's/(^Defaults\s+requiretty)/# $1/g' /etc/ssh/sshd_config

(A linha deve começar com Defaults para corresponder. Se você não quiser, basta remover o ^ . O \s+ irá capturar qualquer número de espaços entre Defaults e requiretty .)

    
por 18.06.2012 / 00:30