¿Cómo fusionar dos archivos en la fila correspondiente?


9

Ahora tengo dos archivos:

aaaa.txt:

a=0;
b=1;
c=2;

bbbb.txt:

d=3
e=4
f=5

Quiero fusionarme aaaa.txty bbbb.txthacerlo cccc.txt.

cccc.txt de la siguiente manera:

a=0;d=3
b=1;e=4
c=2;f=5

Entonces, ¿qué puedo hacer por esto?

Respuestas:


13

Puedes usar pegar para esto:

paste -d '\0' aaaa.txt bbbb.txt > cccc.txt

De su pregunta, parece que el primer archivo contiene ;al final. Si no fuera así, podría usarlo como delimitador al usarlo en su -d ';'lugar.

Tenga en cuenta que, al contrario de lo que uno puede pensar, con -d '\0', no está pegando con un carácter NUL como delimitador, sino con un delimitador vacío. Esa es la forma estándar de especificar un delimitador vacío. Algunas pasteimplementaciones como GNU lo pastepermiten paste -d '', pero no es estándar ni portátil (muchas otras implementaciones informarán un error sobre el delimitador faltante si lo usa paste -d '').


@ Chris Down: muchas gracias, funciona. Por cierto, otra pregunta: awk '{sed' s /.*,/ 999 / g '}' cccc.txt por qué devuelve awk: {sed s /.* , / 999 / g} awk: ^ error de sintaxis. ¿Qué tiene de malo?
binghenzq

No estoy totalmente seguro de lo que estás tratando de hacer, pero no puedes pasar sed a awk así ...
Chris Down

@ Chris Down - Thans, lo entiendo.
binghenzq

Por favor haga preguntas separadas como, bueno, preguntas separadas. Los hace útiles para usuarios posteriores (¡posibles de encontrar!).
vonbrand
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.