Wie füge ich zwei Dateien in der entsprechenden Zeile zusammen?

9

Jetzt habe ich zwei Dateien:

aaaa.txt::

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

bbbb.txt::

d=3
e=4
f=5

Ich möchte zusammenführen aaaa.txtund bbbb.txtzu cccc.txt.

cccc.txt wie folgt:

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

Was kann ich dafür tun?

binghenzq
quelle

Antworten:

13

Sie können hierfür Paste verwenden:

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

Aus Ihrer Frage geht hervor, dass die erste Datei ;am Ende enthält . Wenn dies nicht der Fall ist, können Sie dies als Trennzeichen verwenden, indem Sie -d ';'stattdessen verwenden.

Beachten Sie, dass im Gegensatz zu dem, was man denken mag, -d '\0'nicht ein NUL-Zeichen als Trennzeichen eingefügt wird, sondern ein leeres Trennzeichen. Dies ist die Standardmethode zum Angeben eines leeren Trennzeichens. Einige pasteImplementierungen wie GNU pasteerlauben dies paste -d '', aber es ist weder Standard noch portabel (viele andere Implementierungen melden einen Fehler über das fehlende Trennzeichen, wenn Sie es verwenden paste -d '').

Chris Down
quelle
@ Chris Down - Vielen Dank, es funktioniert. Übrigens eine andere Frage: awk '{sed' s /.*,/ 999 / g '}' cccc.txt warum es zurückkommt awk: {sed s /.* , / 999 / g} awk: ^ Syntaxfehler. Was stimmt damit nicht?
Binghenzq
Ich bin mir nicht ganz sicher, was du versuchst, aber du kannst nicht einfach so weiterkommen ...
Chris Down
@ Chris Down - Dann verstehe ich.
Binghenzq
Bitte stellen Sie separate Fragen sowie separate Fragen. Es macht sie nützlich für spätere Benutzer (möglich zu finden!).
vonbrand