Sed para substituir / mesclar linha em etc / group

1

Eu tenho uma lista de usuários de 1 comando -

getent group ldap-group|cut -c 32-700

Isso me dá uma lista de usuários no formulário

user1,user2,user3...

Eu gostaria de inserir isso em / etc / group sob sshd

sshd:x:74:adminuser,root

E eu gostaria de manter todo o texto até o root.

Eu tentei este comando sed, mas ele não modifica o arquivo corretamente.

sudo sed -i "s/^(sshd:x:\d+:root,).*/\$1(getent group ldap-group|cut -c 32-700)/" /etc/group

Alguém pode me ajudar com a sintaxe do sed?

    
por somabc 21.01.2014 / 21:58

1 resposta

1

Eu não tentaria fazer isso como um forro

groupappend=$(getent group ldap-group|cut -c 32-700)
sed -n "/^sshd:/s/$/,$groupappend/p" /etc/group

e se isso funcionar para você, então

sed -i "/^sshd:/s/$/,$groupappend/" /etc/group

Não ficou claro que você estaria executando isso várias vezes, tente

sed -i "/^sshd/c\sshd:x:74:adminuser,root,$groupappend" /etc/group

em vez disso.

    
por 21.01.2014 / 22:15

Tags