Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Curso de Inglês Online

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Substituição com sed

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 25 de Outubro de 2002

Recentemente precisei zerar o campo da senha do usuário root no arquivo /etc/shadow.

A linha que eu precisava mudar tem o seguinte formato:

  root:$1$GpYaenSE$8mXEvGgDvJ.0KNk2uhlRr0:11901:0:99999:7:::

Os campos são separados pelo caractere ":". Então:

  sed 's/^root:.*:/root::/' /etc/shadow

e fiquei com

  root::

Ao que parece a coisa foi longe demais. Na expressão ^root:.*: o sed substituiu tudo até o último ":". Acontece que, no jargão das expressões regulares, o comando é "guloso". Ele saiu trocando tudo, inclusive o caractere ":" até achar o último ":" na linha, o que deu um resultado totalmente diverso do que eu esperava. O jeito foi fazer:

  sed 's/^root:[^:]*:/root::/' /etc/shadow

Desta vez deu certo:

  root::11901:0:99999:7:::

A expressão "[^:]" significa "case com qualquer caractere exceto o caractere ":"".

Como o sed na verdade não faz a mudança no arquivo, eu preciso completar o comando:

  # cp /etc/shadow /tmp/shadow 
  # sed 's/^root:[^:]*:/root::/' /tmp/shadow > /etc/shadow
  # rm /tmp/shadow

A saída do comando é redirecionada, a partir do arquivo temporário. Ao final, movo o arquivo temporário para o lugar definitivo (/etc/shadow).

Esta é apenas uma das muitas facilidades que o sed oferece.

Para saber mais sobre expressões regulares o melhor caminho é ler o livro do Aurélio Marinho Jargas, "Expressões Regulares", publicado pela editora NOVATEC (http://novateceditora.com.br/guias/expreg/).

Veja a relação completa dos artigos de Rubens Queiroz de Almeida

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 2.98/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (1581 votos)

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script

Treinamentos, Consultorias e Soluçoes em TI. Baseados em softwares livres e padrões abertos para ambientes de missão crítica

Submarino.com.br

Read in English - Uma Maneira Divertida de Aprender Inglês