Para el ejemplo que has puesto si no he entendido mal, no hace falta un sort
La fd del fichero entrada:
Código COBOL:
01 reg-entrada.
02 id-e pic xx.
* suponiendo que n = 40
02 datos-e pic x(40).
02 cadena1-e pic x(10).
La fd del fichero salida:
Código COBOL:
01 reg-salida.
02 id-s pic xx.
* suponiendo que n = 40
02 datos-s pic x(40).
02 cadena1-s pic x(10).
02 cadena2-s pic x(10).
La variable de working cadena tendria el ultimo leido
y fs- entrada file status del fichero entrada
Código COBOL:
01 cadena pic x(10).
02 fs-entrada pic xx.
88 esta-entrada value '00' '02'.
88 n-esta-entrada value '23'.
88 fin-entrada value '46' '10'.
88 bloqueado-entrada value '99' '90'.
88 f-bloqueado-entrada value '38' '93'.
88 f-noexiste-entrada value '35'.
Y ya un bucle para leer el fichero entrada hasta el final
Código COBOL:
open input entrada
open output salida
initialize reg-entrada
move '0000000000' to cadena
read entrada next record end-read
perform until fin-entrada
initialize reg-salida
move reg-entrada to reg-salida
if id-e = '01' then
move cadena1-e to cadena
end-if
move cadena to cadena2-s
write reg-salida end-write
initialize reg-entrada
read entrada next record end-read
end-perform.
close entrada salida.
Esto es salvo error u omision, Pero eso seria la idea