Pesquisa de site

Como ler a entrada Awk do STDIN no Linux - Parte 7


Nas partes anteriores da série de ferramentas Awk, analisamos a leitura de entradas principalmente de arquivos, mas e se você quiser ler entradas de STDIN.

Nesta Parte 7 da série Awk, veremos alguns exemplos onde você pode filtrar a saída de outros comandos em vez de ler a entrada de um arquivo.

Começaremos com o utilitário dir que funciona de forma semelhante ao comando ls, no primeiro exemplo abaixo, usamos a saída do comando dir -l como entrada para o Awk imprimir o nome de usuário do proprietário, nome do grupo e os arquivos que ele /ela possui no diretório atual:

dir -l | awk '{print $3, $4, $9;}'

Dê uma olhada em outro exemplo onde empregamos expressões awk, aqui queremos imprimir arquivos de propriedade do usuário root usando uma expressão para filtrar strings como no comando awk abaixo:

dir -l | awk '$3=="root" {print $1,$3,$4, $9;} '

O comando acima inclui o operador de comparação (==) para nos ajudar a filtrar os arquivos no diretório atual que pertencem ao usuário root. Isto é conseguido usando a expressão $3== ”root ”.

Vejamos outro exemplo de onde usamos um operador de comparação awk para corresponder a uma determinada string.

Aqui, usamos o utilitário cat para visualizar o conteúdo de um arquivo chamado tecmint_deals.txt e queremos visualizar apenas os negócios do tipo Tech, portanto, executaremos o seguintes comandos:

cat tecmint_deals.txt
cat tecmint_deals.txt | awk '$4 ~ /tech/{print}'
cat tecmint_deals.txt | awk '$4 ~ /Tech/{print}'

No exemplo acima, usamos o operador de comparação de valor ~ /pattern/, mas existem dois comandos para tentar revelar algo muito importante.

Quando você executa o comando com o padrão tech nada é impresso porque não há nenhum deal desse tipo, mas com Tech, você obtém negócios de digite Tecnologia.

Portanto, sempre tenha cuidado ao usar este operador de comparação, ele diferencia maiúsculas de minúsculas como vimos acima.

Você sempre pode usar a saída de outro comando como entrada para awk em vez de ler a entrada de um arquivo. Isso é muito simples, como vimos nos exemplos acima.

Espero que os exemplos tenham sido claros o suficiente para você entender, se você tiver alguma dúvida, você pode expressá-la através da seção de comentários abaixo e lembre-se de verificar a próxima parte da série, onde veremos os recursos do awk como variáveis, expressões numéricas e operadores de atribuição.