|
From: | Cyolfi Cyro |
Subject: | Re: [shell-script] Usando variáveis do script dentro do awk |
Date: | Fri, 14 Nov 2014 07:27:38 -0200 |
Olá Cyro,já vi vc agradecer às respostas que recebeu e isso significa que seu problema está resolvido, porém só pra que vc entenda o que houve, vou te dar uma explicação.Como vc sabe, as variáveis do Shell são precedidas por um $ e as do awk, por ser outra linguagem e com outra sintaxe, não usa este $. Então para que o seu exemplo que funcionava com uma constante, continuasse funcionando com uma variável, bastava que vc exibisse-a ao shell para que ele substituísse-a por seu valor antes da execução do awk. Usando o exemplo do Casanova:
$ cat ramal
abc;6166;def;teste;
abc;6165;def;teste;
abc;6167;def;teste;
abc;6168;def;teste;
essa;tem;6166;teste;
essa;nao;tem;6166;fim;
essa;tem;6167;teste;
essa;nao;tem;6168;fim;
essa;tem;6168;teste;
essa;nao;tem;6168;fim;
essa;tem;6169;teste;
essa;nao;tem;6169;fim;
$ awk -F";" '{ if ($3 ~ /6166/) print }' ramal # O seu exemplo que funciona
essa;tem;6166;teste;
$ Num=6166
$ awk -F";" '{ if ($3 ~ /'$Num'/) print }' ramal # Seu exemplo funcionando com variável do Shell
essa;tem;6166;teste;Repare que fechei os apóstrofos antes de $Num e abri-os novamente logo após, deixando o $Num sem proteção para que o Shell a expandisse, trocando-a por seu valor.Em 13 de novembro de 2014 08:49, Cyolfi Cyro address@hidden [shell-script] <address@hidden> escreveu:Olá pessoal,Meu problema é o seguinte, imagine a seguinte variável:RAMAL=6166Eu quero listar todas as linhas aonde o ramal 6166 for encontrado na terceira coluna com delimitador ";".Cheguei a conclusão que a melhor solução seria o awk, e fiz o seguinte teste:awk -F";" '{ if ($3 ~ /6166/) print }' ARQUIVOFuncionou perfeito!!!O problema é que o ramal irá variar dentro de um loop e por isso no lugar do 6166 eu gostaria de colocar uma variável.Já tentei:awk -v NUM="${RAMAL}" -F";" '{ if ($3 ~ /NUM/) print }' ARQUIVOe outra tentativas que não me devolvem resultado algum.Isso me leva a questão, o awk é a melhor forma de se procurar valor em colunas ou existe forma melhor?O que estou errando no comando?Grato por qualquer dica!!!Cyro Ciolfi
Divisão de Suporte Computacional - CTI Renato ArcherProfessor - Metrocamp
[Prev in Thread] Current Thread [Next in Thread]
- Usando variáveis do script dentro do awk, Cyolfi Cyro, 2014/11/13
- Re: [shell-script] Usando variáveis do script dentro do awk, Tiago Peczenyj, 2014/11/13
- Re: [shell-script] Usando variáveis do script dentro do awk, Alfredo Casanova, 2014/11/13
- Re: [shell-script] Usando variáveis do script dentro do awk, Ronaldo Ferreira de Lima, 2014/11/13
- Re: [shell-script] Usando variáveis do script dentro do awk, Cyolfi Cyro, 2014/11/13
- Re: [shell-script] Usando variáveis do script dentro do awk, Julio C. Neves, 2014/11/13
- Re: [shell-script] Usando variáveis do script dentro do awk, Cyolfi Cyro <=
- Prev by Date: Re: Unir linhas
- Next by Date: Re: [shell-script] Dúvida variável
- Previous by thread: Re: [shell-script] Usando variáveis do script dentro do awk
- Next by thread: pegar ultimo param em lista de tam indeterminado
- Index(es):