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?

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 - 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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.