Com base nos comentários, o problema é que o arquivo tem finais de linha CRLF no estilo DOS e seu segundo grupo de captura captura o CR e o move para o meio do padrão de saída, como você pode ver usando cat -et
para tornar os finais de linha explícitos:
$ sed 's/\(.*13...|[^|]*\)\(.*\)$//' tel2.txt | cat -et
|926/448/829^MHernandez Darin, Alberto|plaza mayor|13190|Corral de Calatrava$
|926.443.602^MGomez Badenas, Josefina|calle Sagasta|13190|Corral de Calatrava$
Uma possível solução seria excluir o CR do segundo grupo:
$ sed 's/\(.*13...|[^|]*\)\(.*\)\r$/\r/' tel2.txt | cat -et
|926/448/829Hernandez Darin, Alberto|plaza mayor|13190|Corral de Calatrava^M$
|926.443.602Gomez Badenas, Josefina|calle Sagasta|13190|Corral de Calatrava^M$
(se você não quiser finalizações no estilo DOS no resultado, omita o \r
na substituição).
Eu suspeito que você não queira realmente o delimitador na frente - uma expressão mais simples que lide com os delimitadores de forma mais sensata seria
sed 's/\(.*\)|\([^|]*\)\r/|\r/'
ex .:
$ sed 's/\(.*\)|\([^|]*\)\r/|\r/' tel2.txt | cat -et
926/448/829|Hernandez Darin, Alberto|plaza mayor|13190|Corral de Calatrava^M$
926.443.602|Gomez Badenas, Josefina|calle Sagasta|13190|Corral de Calatrava^M$