De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

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:

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


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