Volver a concatenar líneas de un LDIF con sed

Cuando necesitamos manipular a través de scripts un fichero LDIF, y este tiene líneas de atributos divididas con saltos de línea es necesario revertir esto y volver a concatenarlas para poder comenzar a trabajar. Como muchos sabéis, el estándar de LDIF especifica este punto:

Any line that begins with a single space MUST be treated as a continuation of the previous (non-empty) line. When joining folded lines, exactly one space character at the beginning of each continued line must be discarded. Implementations SHOULD NOT fold lines in the middle of a multi-byte UTF-8 character.

Vamos a ver entonces como a través de una línea de comandos usando sed podemos concatenar de nuevo las líneas que comiencen con un espacio con la línea anterior. El comando es el siguiente:

$ sed -e :a -e '$!N;s/\n //;ta' -e 'P;D' test.ldif

Este ejemplo únicamente volcará la salida por pantalla, recordar redirigir stdout a otro fichero o forzar con “-i” para sobreescribir el mismo fichero.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *