Seria mais elegante fazer a coisa toda em awk
, mas se você quiser algo rápido e sujo, basta definir o separador awk
do registro igual ao separador grep
group - e, em seguida, imprimir o campos delimitados por espaços em branco desejados na ordem desejada:
grep -C1 XYZ file | awk -vRS='\n--' '{print $1, $NF, $3, $2}'
ABCD1 1234597890 12345 1234
DEFG2 0987654321 56789 5678