grep erro 0652-033 [RESOLVIDO]

1. grep erro 0652-033 [RESOLVIDO]

Jefferson
Json

(usa Debian)

Enviado em 21/03/2016 - 16:35h

Olá, criei um script para buscar uma data em um determinado arquivo, porém ao executar o meu script me deparo com o erro 0652-033 do grep, segue abaixo o meu código.


DATA=$(date +%d/%m/%Y)
echo $DATA
if grep '$ DATA' /tmp/arquivo.txt
then
comandos
else
comandos
fi


Se eu escrever dessa maneira
if grep -qs '$ DATA' /tmp/arquivo.txt 
ele funciona, no entanto não entra no if e não executa respectivamente os comando internos, mesmo que o conteúdo do arquivo esteja de acordo com a minha pesquisa.


  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 22/03/2016 - 19:52h

Json escreveu:

Bom, não irei mais procurar uma data pois é exatamente por isso que o código não funciona, então resolvi procurar uma string utilizando o comando.
if [ "$(grep -c "palavra" /tmp/arquivo.txt)" -ge 1 ]; then 

Agora funciona.

_____________________________________________________________________________________
Boa noite Json, sei que encerrou o tópico, mas, gosto que as "coisas" fiquem esclarecidas . . . .
Tem que funcionar sim!!!
Vamos lá:
Gerando o arquivo DATA.txt, com o Nº do dia (no ano) e a data:

FMT="%d/%m/%Y"
for ((X=1;X<=366;X++));do DT=$(date -d "2015-12-31 $X day" +"$FMT"); printf "%03d:$DT\n" >> DATA.txt $X; done

Saída:
001:01/01/2016
. . .
366:31/12/2016

DATA=$(date +"%d/%m/%Y") 

echo $DATA
22/03/2016

grep --color "$DATA" DATA.txt 

082:22/03/2016

if grep -q "$DATA" DATA.txt;then
echo "ENCONTROU a data $DATA"
else
echo "\"NãO\" ENCONTROU a data $DATA"
fi

ENCONTROU a data 22/03/2016

Já que cada linha inicia com o Nº do Dia, que é = ao Nº da linha:
egrep --color ^'195' DATA.txt
195:13/07/2016

Att.:
Marcelo Oliver




3. Re: grep erro 0652-033 [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 21/03/2016 - 17:22h

escreveu:
Olá, criei um script para buscar uma data em um determinado arquivo, porém ao executar o meu script me deparo com o erro 0652-033 do grep, segue abaixo o meu código.

DATA=$(date +%d/%m/%Y)
echo $DATA
if grep '$ DATA' /tmp/arquivo.txt
then
comandos
else
comandos
fi


Se eu escrever dessa maneira
if grep -qs '$ DATA' /tmp/arquivo.txt 
ele funciona, no entanto não entra no if e não executa respectivamente os comando internos, mesmo que o conteúdo do arquivo esteja de acordo com a minha pesquisa.

---------------------------------------------------------------------------------------
Boa tarde Json.
Faça desta maneira:
if grep "$DATA" /tmp/arquivo.txt 

Deve tirar o espaço entre o $ e DATA, e colocar a variável entre aspas duplas.
É Isso.

Se resolver, marque como resolvido, por favor.
Gostando da resposta, marque-a como MELHOR, dessa forma, ganho uns pontinhos, o que incentiva a continuar colaborando/ajudando/participando/compartilhando . . . :)

Att.:
Marcelo




4. Re: grep erro 0652-033

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 21/03/2016 - 17:25h

Se este espaço ($ DATA) entre o cifrão e a palavra DATA foi proposital então o erro esta ai, mas se não foi poste uma copia/pedaço do arquivo que deseja pesquisar


5. Re: grep erro 0652-033

Jefferson
Json

(usa Debian)

Enviado em 22/03/2016 - 14:13h

Fiz as alterações que vocês citaram, porém não teve nenhuma diferença. Utilizando o comando
if grep -qs "$DATA" /tmp/termino.txt 
, não aparece nenhum erro e mesmo assim ele não entra no bloco if. E a respeito do conteúdo do arquivo.txt, nele está armazenado apenas a data no formato "+%d/%m/%Y" que eu quero pesquisar.

OBS:no comando que citei acima, estou utilizando o -qs justamente para não ocorrer o erro 0652-033


6. Re: grep erro 0652-033

Jefferson
Json

(usa Debian)

Enviado em 22/03/2016 - 14:42h

Bom, não irei mais procurar uma data pois é exatamente por isso que o código não funciona, então resolvi procurar uma string utilizando o comando.
if [ "$(grep -c "palavra" /tmp/arquivo.txt)" -ge 1 ]; then 

Agora funciona.


7. Re: grep erro 0652-033 [RESOLVIDO]

Jefferson
Json

(usa Debian)

Enviado em 31/03/2016 - 14:07h

msoliver, demorei para dar um feedback pela sua resposta do problema, e na verdade realmente a sua resolução está correta depois que fiz umas alterações no meu script, pois tinhas alguns erros em outros lugares, o comando grep realmente buscou a data no arquivo que eu queria, mas valeu pela atenção, irei marcar sua resposta como a melhor.


8. Re: grep erro 0652-033 [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 31/03/2016 - 14:27h

Json escreveu:

msoliver, demorei para dar um feedback pela sua resposta do problema, e na verdade realmente a sua resolução está correta depois que fiz umas alterações no meu script, pois tinhas alguns erros em outros lugares, o comando grep realmente buscou a data no arquivo que eu queria, mas valeu pela atenção, irei marcar sua resposta como a melhor.

-----------------------------------------
Valeu!
abç.:
Marcelo








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts