você está aqui: Home  → Arquivo de Mensagens Você sabia que o bitcoin valorizou 102% só em 2020?

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