Em um ambiente Linux, é muito comum usarmos o comando grep para busca de palavras em arquivos de texto. O grep realiza a pesquisa linha a linha em busca de uma ou mais palavras informadas pelo usuário. A linha que conter a palavra, é retornada na saída padrão.
Combinando comandos e algumas opções do comando grep, podemos aplicar os conceitos dos operadores lógicos OU, E e NÃO em uma linha de comando. O grep possui opções que simulam os operadores OU e NÃO, o operador E pode ser simulado com o uso de canalização.
OU
A opção -e do comando grep pode ser usada para especificar múltiplas palavras-chave em uma mesma linha de comando. Como retorno, o grep exibe as linhas que contiverem uma ou mais palavras especificadas. É o efeito do operador lógico OU não exclusivo;
grep -e palavra1 -e palavra2 -e palavra3 arquivo.txt
E
O comando grep não possui opção que simule a operação E, porém podemos simular usando uma canalização. Para isto, realizamos a busca informando somente a primeira palavra e canalizando a saída para uma nova busca com a segunda palavra, assim sucessivamente. O retorno final serão as linhas que contiverem todas as palavras especificadas:
grep palavra1 arquivo.txt | grep palavra2 | grep palavra3
NÃO
A opção -v do comando grep pode ser usada para inverter o sentido da busca, serão retornadas as linhas que não contiverem a palavra especificada. É o efeito do operador lógico de negação:
grep -v palavra arquivo.txt
Podemos combinar os operadores lógicos para atuarem em uma mesma expressão de busca. A seguir algumas das combinações e suas respectivas descrições lógicas dos comandos de exemplo:
OU com NÃO
grep -v -e palavra1 -e palavra2 arquivo.txt
(busca por linhas que não contenham a palavra1 ou palavra2)
E com NÃO
grep palavra1 arquivo.txt | grep palavra2 | grep -v palavra3
(busca por linhas que contenham a palavra1 e palavra2 mas não contenham a palavra3)
E com OU
grep palavra1 arquivo.txt | grep -e palavra2 -e palavra3
(busca por linhas que contenham a palavra1 e a palavra2 ou palavra3)
Claro que existem as expressões regulares para gerar um padrão de busca, com o caractere | como operador OU etc. Entretanto não há, por exemplo, uma operação E eficiente sem usar o operador OU em conjunto. Creio que estas simples aplicações de comandos grep com canalizações e algumas opções possui um entendimento mais fácil. Se desejar, saiba mais sobre expressões regulares com o grep em http://dan-scientia.blogspot.com.br/2012/07/expressoes-regulares-com-o-grep_22.html
Combinando comandos e algumas opções do comando grep, podemos aplicar os conceitos dos operadores lógicos OU, E e NÃO em uma linha de comando. O grep possui opções que simulam os operadores OU e NÃO, o operador E pode ser simulado com o uso de canalização.
OU
A opção -e do comando grep pode ser usada para especificar múltiplas palavras-chave em uma mesma linha de comando. Como retorno, o grep exibe as linhas que contiverem uma ou mais palavras especificadas. É o efeito do operador lógico OU não exclusivo;
grep -e palavra1 -e palavra2 -e palavra3 arquivo.txt
E
O comando grep não possui opção que simule a operação E, porém podemos simular usando uma canalização. Para isto, realizamos a busca informando somente a primeira palavra e canalizando a saída para uma nova busca com a segunda palavra, assim sucessivamente. O retorno final serão as linhas que contiverem todas as palavras especificadas:
grep palavra1 arquivo.txt | grep palavra2 | grep palavra3
NÃO
A opção -v do comando grep pode ser usada para inverter o sentido da busca, serão retornadas as linhas que não contiverem a palavra especificada. É o efeito do operador lógico de negação:
grep -v palavra arquivo.txt
Podemos combinar os operadores lógicos para atuarem em uma mesma expressão de busca. A seguir algumas das combinações e suas respectivas descrições lógicas dos comandos de exemplo:
OU com NÃO
grep -v -e palavra1 -e palavra2 arquivo.txt
(busca por linhas que não contenham a palavra1 ou palavra2)
E com NÃO
grep palavra1 arquivo.txt | grep palavra2 | grep -v palavra3
(busca por linhas que contenham a palavra1 e palavra2 mas não contenham a palavra3)
E com OU
grep palavra1 arquivo.txt | grep -e palavra2 -e palavra3
(busca por linhas que contenham a palavra1 e a palavra2 ou palavra3)
Claro que existem as expressões regulares para gerar um padrão de busca, com o caractere | como operador OU etc. Entretanto não há, por exemplo, uma operação E eficiente sem usar o operador OU em conjunto. Creio que estas simples aplicações de comandos grep com canalizações e algumas opções possui um entendimento mais fácil. Se desejar, saiba mais sobre expressões regulares com o grep em http://dan-scientia.blogspot.com.br/2012/07/expressoes-regulares-com-o-grep_22.html
Nenhum comentário:
Postar um comentário