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
.