¿Cómo fusionar cada dos líneas en una desde la línea de comando?

Resuelto shantanuo asked hace 12 años • 21 respuestas

Tengo un archivo de texto con el siguiente formato. La primera línea es la "CLAVE" y la segunda línea es el "VALOR".

KEY 4048:1736 string
3
KEY 0:1772 string
1
KEY 4192:1349 string
1
KEY 7329:2407 string
2
KEY 0:1774 string
1

Necesito el valor en la misma línea que la clave. Entonces la salida debería verse así...

KEY 4048:1736 string 3
KEY 0:1772 string 1
KEY 4192:1349 string 1
KEY 7329:2407 string 2
KEY 0:1774 string 1

Sería mejor si pudiera usar algún delimitador como $o ,:

KEY 4048:1736 string , 3

¿Cómo fusiono dos líneas en una?

shantanuo avatar Mar 07 '12 23:03 shantanuo
Aceptado

pastees bueno para este trabajo:

paste -d " "  - - < filename
glenn jackman avatar Mar 07 '2012 16:03 glenn jackman

mal:

awk 'NR%2{printf "%s ",$0;next;}1' yourFile

tenga en cuenta que hay una línea vacía al final del resultado.

sed:

sed 'N;s/\n/ /' yourFile
Kent avatar Mar 07 '2012 16:03 Kent