Come unire due file nella riga corrispondente?


9

Ora ho due file:

aaaa.txt:

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

bbbb.txt:

d=3
e=4
f=5

Voglio fondersi aaaa.txte bbbb.txtad cccc.txt.

cccc.txt come segue:

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

Quindi, cosa posso fare per questo?

Risposte:


13

Puoi usare incolla per questo:

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

Dalla tua domanda, sembra che il primo file contenga ;alla fine. In caso contrario, puoi usarlo come delimitatore usando -d ';'invece.

Si noti che contrariamente a quanto si potrebbe pensare, con -d '\0', non è incollare con un carattere NUL come delimitatore, ma con un delimitatore vuoto. Questo è il modo standard per specificare un delimitatore vuoto. Alcune pasteimplementazioni come GNU lo pasteconsentono paste -d '', ma non è né standard né portatile (molte altre implementazioni segnaleranno un errore sul delimitatore mancante se si utilizza paste -d '').


@ Chris Down - Grazie mille, funziona. A proposito, un'altra domanda: awk '{sed' s /.*,/ 999 / g '}' cccc.txt perché ritorna awk: {sed s /.* , / 999 / g} awk: ^ errore di sintassi. Che cosa c'è che non va?
Binghenzq,

Non sono del tutto sicuro di quello che stai cercando di fare, ma non puoi semplicemente passare da sed a awk in quel modo ...
Chris Down,

@ Chris Down - Grazie, ho capito.
Binghenzq,

Si prega di porre domande separate, nonché domande separate. Li rende utili per gli utenti successivi (è possibile trovarli!).
vonbrand,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.