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.