msoliver
(usa Debian)
Enviado em 05/01/2023 - 18:41h
manuca0 escreveu:
Fala, gente!
No meu crontab eu tenho vários jobs agendados, daí queria imprimir na tela apenas o nome deles(algumaCoisa.sh) e só os que estiverem comentados, ex:
50 8 * * * /home/manuca0/job.sh
#50 9 * * * /home/manuca0/testes/shells/testando.sh
No caso, queria pegar apenas o "testando.sh" da segunda linha.
Tentei fazer um crontab -l | grep "sh" mas não funciona pq ele só pega o sh... como a quantidade de subdiretórios pode variar, tb n consegui passando um
crontab -l |awk -F "/" '{print $6}'
pq pode ser que um outro job tenha menos ou mais diretórios... alguém sabe como posso fazer isso?
Boa noite manuca0.
Para contornar o problema do número de campos, faça:
crontab -l |awk -F"/" '$0~/^#/{print $NF}'
* '$NF' refere-se ao ultimo campo
-----------------------------------------------------
Com grep:
grep '^#' arq.txt|grep -Eo '[a-z]+.sh$'
-----------------------------------------------------
Uma opção maluca . . . :)
IFS='/' read -a mtz <<< $(grep '^#.*sh$' arquivo.txt) #Gera matriz com os campos da linha
echo ${mtz[$((${#mtz[@]} - 1))]} #Mostra o ultimo campo, $((${#mtz[@]} - 1)) => Qtdd de campos - 1 = Ultimo
______________________________________________________________________
Importante:
lynx --dump
https://www.vivaolinux.com.br/termos-de-uso/ | sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________
Nota de esclarecimento:
O comando:
ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________