Alterar uma linha inteira dentro de um arquivo com várias linhas [RESOLVIDO]

1. Alterar uma linha inteira dentro de um arquivo com várias linhas [RESOLVIDO]

Bene Santos
benet

(usa Debian)

Enviado em 15/09/2018 - 16:13h

Olá amigos.
Gostaria de solicitar uma ajuda.
Tenho um arquivo com muitas linhas, todos devem conhecer /etc/group. Dentro desse arquivo tenho vários mapeamentos e as vezes preciso alterar um ou outro mapeamento.

Já fiz o comando que encontra e altera a linha, mas gostaria de saber como faço para salvar a linha alterada dentro do arquivo. Alguém tem uma ideia.

EXEMPLOS:
Nos testes copiei o group para o /tmp

Esse comando é só para mostrar a linha original

[root]/>cat /tmp/group | grep -w pst_contratos
pst_contratos:x:798:aluizio,cinthia,dalton,isley,michelsilva,nelma,tabata,nivaldo

Esse é o comando com a alteração da linha

[root]/>cat /tmp/group | grep -w pst_contratos | sed 's/:/,/g' | sed "s/,aluizio//" | sed 's/,/:/1;s/,/:/2;s/,/:/1'
pst_contratos:x:798:cinthia,dalton,isley,michelsilva,nelma,tabata,nivaldo

Vejam que com o comando consegui tirar o usuário aluizio, como faço para salvar essa alteração dentro do /tmp/group que é o arquivo de origem?

Desde já agradeço.

Valeu.




  


2. MELHOR RESPOSTA

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 15/09/2018 - 19:36h

Se o objetivo é apenas remover "aluizio" do grupo "pst_contratos", basta fazer assim:
# sed -i '/pst_contratos/ s/aluizio,//' /etc/group 

Obs: A opção "-i" do sed faz a alteração direta no arquivo, se precisar criar backup adicione uma extensão tipo "-i.bkp".

Porém, o comando mais adequado é o gpasswd:
# gpasswd -d usuario grupo 


3. Re: Alterar uma linha inteira dentro de um arquivo com várias linhas [RESOLVIDO]

Mashn
Mashn

(usa Outra)

Enviado em 15/09/2018 - 18:46h

A opção do -i do sed salva as alterações no arquivo de origem.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts