Um script awk
pode fazer tudo isso. Isso também pode ser feito com o shell script Bourne puro, como este abaixo:
grep -E -o '[[:digit:]]+; num=[^;]+' performance.log \
| while IFS="; " read n num; do
echo "$num" >> "${n}_error_code.txt"
done
A parte grep
extrai a subcadeia " EEE; num=NNN
" das suas linhas " Error_code=EEE; num=NNN;
". O loop while lê EEE
e num=NNN
e escreve o último em EEE_error_code.txt
Se você estiver interessado em apenas um código de erro específico (EEE abaixo), você pode alterar o comando grep
para:
grep -E -o '\<EEE; num=[^;]+' performance.log | while ...
Se você estiver interessado em um pequeno conjunto de códigos de erro (EEE1 ... EEEn abaixo), você pode alterar o comando grep
para:
grep -E -o '\<(EEE1|EEE2|...|EEEn); num=[^;]+' performance.log | while ...