Baseado na resposta de Costas.
1) Crie um arquivo parse.awk, com o seguinte conteúdo:
/^Record/ {
if (s>0) {
printf ("%s|%s|", r,l)
system("echo '"line"' | md5sum - | awk '{print $1}' ");
}
s=1;
r=$2;
c=1;
l=NR;
line="$0";
}
!/^Record/ {
line=line"\n""$0";
c+=1
}
END {
printf ("%s|%s|", r,l)
system("echo '"line"' | md5sum - | awk '{print $1}' ");
}
Veja as explicações de Costas.
Este script apenas faz
printf
o início da linha resultante (em vez de imprimir, que coloca uma nova linha)
system(echo $line | md5sum)
para imprimir o md5 - e uma nova linha
2) Executar awk -F"|" -f parse.awk myfile
3) Aproveite o resultado:
1111|1|cb36533781d8dd00011a85b0db9b87b3
2222|4|521331bb249e8a668afa2199fa8d289a
3333|6|6c2564464187094e9db3159d26ade2a5