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.

grep - interpretando arquivos de texto como binários

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 17 de janeiro de 2017

Quando realizamos uma busca com o comando grep, se o arquivo for de texto, ele retorna o que encontrou da seguinte forma:

$ grep regras lerolero.txt
por modificações independentemente das regras de conduta normativas.

Vamos então modificar o mesmo arquivo, inserindo NUL bytes ao seu final:

$  truncate -s +10 lerolero.txt

Isto feito, vamos repetir a busca com o comando grep:

$ grep regras lerolero.txt 
Binary file lerolero.txt matches

Desta vez o comando grep assumiu que o arquivo lerolero.txt era binário. Ao invés de retornar as linhas onde a palavra regra se encontra, ele apenas afirmou que o arquivo lerolero.txt contém a palavra regra, o que certamente não nos atende.

Para resolver este problema, basta fornecer a diretiva -a ao comando grep:

$ grep -a regras lerolero.txt
por modificações independentemente das regras de conduta normativas.

A diretiva -a instrui o comando grep a processar o arquivo binário como se fosse um arquivo texto.

Eu tive este problema quando o script que envia a dica diária da lista EFR2 passou a registrar nos arquivos gerados a mensagem Binary file XXXX.t2t matches. Felizmente foi muito fácil resolver o problema.

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 Rubens Queiroz de Almeida