Comparando variavel com a data do sistema [RESOLVIDO]

1. Comparando variavel com a data do sistema [RESOLVIDO]

Matheus Genteluci de Almeida
MGenteluci2

(usa Ubuntu)

Enviado em 01/12/2016 - 16:21h

Boa tarde galera, estou com uma dúvida que está realmente dificil de resolver, eu estou com um arquivo em que em cada linha possui informações sobre uma pessoa diferente, cada linha está da seguinte forma:
$nome":"$sobrenome":"$tel":"$anoNasc"/"$diaNasc"/"$mesNasc

Eu preciso verificar se em alguma linha possui alguem que esteja fazendo aniversário durante o mes atual.
Meu script está da seguinte forma:

aniversarioMes(){
for line in $(cat arquivoAgenda)
do
if [ "cut -d/ -f3" = "$(date +%m)" ]
then
echo $line >> aniversariantesMes
fi
done
cat aniversariantesMes
}

Porém não está funcionando, se alguém puder dar uma esclarecida agradeço.
O script roda sem erros, ele apenas não está igualando os dois, o cut -d/ -f3 não está sendo igual ao date +%m mesmo que os valores estejam iguais.


  


2. MELHOR RESPOSTA

Marcos Felipe
plimo263

(usa Ubuntu)

Enviado em 01/12/2016 - 16:31h

MGenteluci2 escreveu:

Boa tarde galera, estou com uma dúvida que está realmente dificil de resolver, eu estou com um arquivo em que em cada linha possui informações sobre uma pessoa diferente, cada linha está da seguinte forma:
$nome":"$sobrenome":"$tel":"$anoNasc"/"$diaNasc"/"$mesNasc

Eu preciso verificar se em alguma linha possui alguem que esteja fazendo aniversário durante o mes atual.
Meu script está da seguinte forma:

aniversarioMes(){
for line in $(cat arquivoAgenda)
do
if [ "cut -d/ -f3" = "$(date +%m)" ]
then
echo $line >> aniversariantesMes
fi
done
cat aniversariantesMes
}

Porém não está funcionando, se alguém puder dar uma esclarecida agradeço.
O script roda sem erros, ele apenas não está igualando os dois, o cut -d/ -f3 não está sendo igual ao date +%m mesmo que os valores estejam iguais.


Boa tarde acho que assim poderia funcionar

aniversariantedomes(){

MES=$(date +'%m')
for linha in $(cat arquivo); do
CAMPO=$(cat $linha | cut -d '/' -f3)
if [ "$MES" = "$CAMPO" ]; then
echo $linha >> aniversariantesMes
fi
done

cat aniversariantesMes
}

3. Re: Comparando variavel com a data do sistema [RESOLVIDO]

Matheus Genteluci de Almeida
MGenteluci2

(usa Ubuntu)

Enviado em 01/12/2016 - 21:22h

Eai amigo, a sintaxe estava correta porém na hora de fazer o cut na $linha ele nao estava funcionando pois ela nao é um diretorio entao tive que fazer apenas uma pequena modificação e funcionou, ficou assim:

aniversarioMes(){
> aniversariantesMes
for line in $(cat arquivoAgenda)
do
echo $line > aniversarioTeste
if [ "$(cut -d/ -f3 aniversarioTeste)" = "$(date +%m)" ]
then
echo $line >> aniversariantesMes
fi
done
cat aniversariantesMes
}

Obrigado pelo ajuda!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts