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.

Removendo e inserindo dados em um arquivo com awk

Colaboração: Wander Barbato

Data de Publicação: 13 de Novembro de 2009

Recentemente eu recebi um arquivo de um fornecedor de software que continha uma listagem com números de série de softwares a serem atribuídos aos nossos usuários. Eu queria criar uma listagem contendo apenas estes números de série (removendo as demais informações que para mim eram desnecessárias) e acrescentar um campo para conter o nome e a assinatura dos usuários responsáveis pelo respectivo número de série atribuído.

O formato do arquivo original (antigo.txt) era o seguinte:

  <Key ID="45" Type="AAA" ClaimedDate="2009/11/05">XXXXX-XXXXX-XXXXX-XXXXX-XXXXX</Key>
  <Key ID="45" Type="AAA" ClaimedDate="2009/11/05">XXXXX-XXXXX-XXXXX-XXXXX-XXXXX</Key>
  <Key ID="45" Type="AAA" ClaimedDate="2009/11/05">XXXXX-XXXXX-XXXXX-XXXXX-XXXXX</Key>
  <Key ID="45" Type="AAA" ClaimedDate="2009/11/05">XXXXX-XXXXX-XXXXX-XXXXX-XXXXX</Key>
  <Key ID="45" Type="AAA" ClaimedDate="2009/11/05">XXXXX-XXXXX-XXXXX-XXXXX-XXXXX</Key>
  <Key ID="45" Type="AAA" ClaimedDate="2009/11/05">XXXXX-XXXXX-XXXXX-XXXXX-XXXXX</Key>
  <Key ID="45" Type="AAA" ClaimedDate="2009/11/05">XXXXX-XXXXX-XXXXX-XXXXX-XXXXX</Key>
  <Key ID="45" Type="AAA" ClaimedDate="2009/11/05">XXXXX-XXXXX-XXXXX-XXXXX-XXXXX</Key>
  <Key ID="45" Type="AAA" ClaimedDate="2009/11/05">XXXXX-XXXXX-XXXXX-XXXXX-XXXXX</Key>
  <Key ID="45" Type="AAA" ClaimedDate="2009/11/05">XXXXX-XXXXX-XXXXX-XXXXX-XXXXX</Key>

Com a diferença que havia centenas de linhas...

Lembrei-me do comando awk e este resolveu o meu problema de imediato. A sintaxe utilizada foi:

  awk -F">" '{print $2}' antigo.txt | \
  awk -F"<" '{print NR " - "$1 " - Nome e assinatura:__________________________________"}' > novo.txt

O formato do arquivo gerado (novo.txt) ficou assim:

  1 - XXXXX-XXXXX-XXXXX-XXXXX-XXXXX - Nome e assinatura:__________________________________
  2 - XXXXX-XXXXX-XXXXX-XXXXX-XXXXX - Nome e assinatura:__________________________________
  3 - XXXXX-XXXXX-XXXXX-XXXXX-XXXXX - Nome e assinatura:__________________________________
  4 - XXXXX-XXXXX-XXXXX-XXXXX-XXXXX - Nome e assinatura:__________________________________
  5 - XXXXX-XXXXX-XXXXX-XXXXX-XXXXX - Nome e assinatura:__________________________________
  6 - XXXXX-XXXXX-XXXXX-XXXXX-XXXXX - Nome e assinatura:__________________________________
  7 - XXXXX-XXXXX-XXXXX-XXXXX-XXXXX - Nome e assinatura:__________________________________
  8 - XXXXX-XXXXX-XXXXX-XXXXX-XXXXX - Nome e assinatura:__________________________________
  9 - XXXXX-XXXXX-XXXXX-XXXXX-XXXXX - Nome e assinatura:__________________________________
  10 - XXXXX-XXXXX-XXXXX-XXXXX-XXXXX - Nome e assinatura:__________________________________

Explicando:

A opção -F do awk indica o "field-separator", ou seja, qual caractere indica separação entre diferentes campos de uma linha. Como não havia colunas separadas corretamente com espaços e/ou tabulação, utilizei esta opção para dividir a linha do arquivo em 2 campos:

  • 1º campo: <Key ID="45" Type="AAA" ClaimedDate="2009/11/05"
  • 2º campo: XXXXX-XXXXX-XXXXX-XXXXX-XXXXX</Key>

A saída deste comando foi direcionada para um novo processamento de awk que novamente dividiu a linha em 2 campos, ecoou apenas o número de série e acrescentou o número da linha (NR) antes e uma descrição

  Nome e assinatura:__________________________________ 

em seguida.


Yahoo! doa seu Traffic Server à Fundação Apache

Fonte: Notícias Linux

O Yahoo! decidiu publicar o código do Traffic Server, uma plataforma que eles mesmos desenvolveram para gerenciar o tráfego de seu webmail e outros serviços web. Entre outras coisas, a plataforma se encarrega do caching, processamento e balanceamento de carga no Yahoo!, além disso é utilizado para gerenciar o tráfego nos serviços de virtualização de armazenamento interno do Yahoo!.

Saiba Mais:

Veja a relação completa dos artigos de Wander Barbato

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 3.00/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (924 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