AWK - procurar palavra [PROBLEMA CODIGO] [RESOLVIDO]

1. AWK - procurar palavra [PROBLEMA CODIGO] [RESOLVIDO]

Alex Machado Fontinelli
Pinguino

(usa Debian)

Enviado em 13/06/2020 - 10:21h

Bom dia, estou com o seguinte problema criei o codigo abaixo porem ele sempre cai sempre na opção Encontrada pois o awk sempre retorna 0
e não mostra a linha completa apenas o numero 0 porem se eu uso apenas o codigo no terminal awk -F '|' '{if($4 && NR==1) print $4~/^\['PALAVRA']/}' file.txt
ele retorna 1 mas não mostra a linha completa

file

1: zzz|zzz|bbb|[X]|999|222
2: xxx|xxx|bbb|[Y]|999|222



FILE=~/path/file

read -p "Palavra: " STRING
if
awk -F '|' '{if($4 && NR==1) print $4~/^\['$STRING']/}' $FILE ; then
echo "Encontrada"
else
echo "Não Encontrada"
fi


quem puder me ajudar vou ficar muito grato, tenham um ótimo dia! :)



  


2. Re: AWK - procurar palavra [PROBLEMA CODIGO] [RESOLVIDO]

Fábio Berbert de Paula
fabio

(usa Debian)

Enviado em 13/06/2020 - 11:50h

read -p "Palavra: " $STRING


O erro está na linha acima. O correto é:

read -p "Palavra: " STRING



3. Re: AWK - procurar palavra [PROBLEMA CODIGO] [RESOLVIDO]

Alex Machado Fontinelli
Pinguino

(usa Debian)

Enviado em 13/06/2020 - 12:12h

opa já corrigi a postagem obrigado hehe, mas então ele sempre cai na primeira condição do if mesmo se não encontra a palavra


4. Re: AWK - procurar palavra [PROBLEMA CODIGO] [RESOLVIDO]

Fábio Berbert de Paula
fabio

(usa Debian)

Enviado em 13/06/2020 - 12:49h

Faz uma alteração na lógica, fiz aqui e funcionou. Só não sei te explicar o motivo, visto que o awk está retornando 0 e 1 corretamente fora do script:

RETORNO=`awk -F '|' '{if($4 && NR==1) print $4~/^\['$STRING']/}' $FILE`
if [ $RETORNO -eq 1 ]
then
echo "Encontrada"
else
echo "Não Encontrada"
fi



5. Re: AWK - procurar palavra [PROBLEMA CODIGO] [RESOLVIDO]

Alex Machado Fontinelli
Pinguino

(usa Debian)

Enviado em 13/06/2020 - 16:51h

consegui

FILE=~/path/file

read -p "Palavra: " STRING
if
awk -F '|' 'END {exit encontrada==0} {if($4 && NR==1) encontrada = $4~/^\['$STRING']/}' $FILE ; then
echo "Encontrada"
else
echo "Não Encontrada"
fi



6. Re: AWK - procurar palavra [PROBLEMA CODIGO] [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 13/06/2020 - 17:42h

Pinguino escreveu:

consegui

FILE=~/path/file

read -p "Palavra: " STRING
if
awk -F '|' 'END {exit encontrada==0} {if($4 && NR==1) encontrada = $4~/^\['$STRING']/}' $FILE ; then
echo "Encontrada"
else
echo "Não Encontrada"
fi


Pinguino, boa tarde.
Apesar de resolvido, fica a sugestão:
awk -F"|" 'NR==1 {if($4~/^['${STRING}']$/) print "ENCONTROU";else print "NÃO ENCONTROU"}' texto.txt 




______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts