Você pode usar sed :
sed -i 's/|4|/|\n4|/' file.txt
Isso substituirá |4| por |\n4| (ou seja, uma barra vertical, uma nova linha e, em seguida, 4| ).
Então eu tenho um nome de arquivo test.txt dentro desse arquivo eu tenho cerca de 20 linhas de texto que são delimitadas por pipe | Exemplo:
John|freshman|seatle|math|4|fulltime
Bob|senior|Tacoma|biology|4|part-time
Eu quero fazer 2 linhas para cada registro após o número 4, exemplo
John|freshman|seatle|math|
4|full-time
Bob|senior|Tacoma|biology|
4|part-time
Etc ..
Se o seu número 4 for colocado sempre no quinto campo, então com awk você poderá adicionar uma nova linha:
$ awk 'BEGIN{FS=OFS="|"}$5="\n"$5' file
John|freshman|seatle|math|
4|fulltime
Bob|senior|Tacoma|biology|
4|part-time