shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Usando variáveis do script dentro do awk


From: Alfredo Casanova
Subject: Re: [shell-script] Usando variáveis do script dentro do awk
Date: Thu, 13 Nov 2014 11:54:31 +0000

$ 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;

$ for ramal in 6166 6167 6168 6169 6170; do grep -E "^([^;]*;){2}$ramal;.*" ramal; done
essa;tem;6166;teste;
essa;tem;6167;teste;
essa;tem;6168;teste;
essa;tem;6169;teste;


On Thu Nov 13 2014 at 9:23:01 AM Tiago Peczenyj address@hidden [shell-script] <address@hidden> wrote:
 

para isso vc usa a função match

awk -v NUM="${RAMAL}" -F";" 'match($0, NUM) { print }' ARQUIVO

e se vc exportou RAMAL, pode usar o array ENVIRON

$ export RAMAL
$ awk -F";" 'match($0, ENVIRON["RAMAL"]) { print }' ARQUIVO

2014-11-13 8:49 GMT-02:00 Cyolfi Cyro address@hidden [shell-script] <address@hidden>:


 

Olá pessoal,

Meu problema é o seguinte, imagine a seguinte variável:

RAMAL=6166

Eu 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 }' ARQUIVO

Funcionou 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 }' ARQUIVO

e 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 Archer
Professor - Metrocamp




--
Tiago B. Peczenyj
Linux User #405772

http://about.me/peczenyj


reply via email to

[Prev in Thread] Current Thread [Next in Thread]