2017-11-27 20:11:13,632 INFO abc: [java: Thread-389579]: Completed executing command
2017-11-27 20:11:13,632 INFO abc: [java: Thread-389579]: OK
2017-11-27 20:11:13,632 INFO abc: [java: Thread-389579]: <completed>
2017-11-27 20:11:13,632 INFO abc: [java: Thread-389579]: release for adeo/student
Minhas abordagens:
awk 'today="$(date +'%Y-%m-%d')" ( = today) && /Completed executing command/ {cnr = NR} NR == (cnr+3) {gsub(/\/.*/,"",$NF); print $NF}' filename
awk 'today="$(date +'%Y-%m-%d')" ( == today) && /Completed executing command/ { cnr = NR } NR == (cnr+3) { sub("/.*","",$NF); print $NF }' filename
Queremos imprimir apenas adeo
e student
em duas variáveis diferentes. Condição é se $ 1 é igual a data atual, então deve procurar Completed executing command
no arquivo inteiro e, em seguida, pular duas linhas e, em seguida, imprimir adeo
e student
. (O nome adeo / aluno não é fixo muda, por isso, no caso acima, queremos adeo e aluno, mas se houver algum outro nome, que deve aparecer em seu lugar).
Da nossa abordagem, estamos recebendo apenas adeo
. Como podemos conseguir isso usando awk
/ sed
/ grep
ou qualquer outra ferramenta?