Usando o GNU awk, você pode tentar:
gawk -v RS='Record[|]' -F'|' '$1{printf "%s%s", RT, $0 > $1}' file
Com Record| como o separador de registros , podemos obter facilmente cada registro . O RS do GNU awk pode ser uma expressão regular (como neste caso), e RT contém o texto que corresponde a essa expressão ( Record| ).
Com mawk , RT não está disponível, então você pode usar printf "Record|%s", $0 .