Mit nur awk
Befehl:
awk -F, '{getline f1 <"file2" ;print f1,$3,$4}' OFS=, file1
Holen Sie sich eine Zeile aus Datei1 und speichern Sie sie in der lokalen Variablen f1
. Drucken Sie dann die Zeile, die in Datei1 gespeichert ist, f1
und drucken Sie schließlich das dritte ( $3
) und $3
vierte ( ) Feld aus, das durch Komma ,
getrennt ist Standard]) zu Komma ( ,
).
Der Kurzbefehl würde so aussehen:
paste -d, file2 <(cut -d, -f3- file1)
A B C D
A B C D
A B C D
A B C D
Fügen Sie die Datei2 ein, schneiden Sie dann die dritte Spalte aus und fügen Sie sie in die nächste ( -f3-
) von Datei1 ein.
Mit awk
und paste
(Option A)
Der folgende Befehl kopiert auch die letzten beiden Spalten ( C,D
) aus Datei1 am Ende jeder Zeile in Datei2:
paste -d',' file2 <(awk -F',' '{print $(NF-1)","$NF}' file1)
Obiger Befehl fügen Sie dann der file2 Inhalt ein Komma als Trennzeichen drucken ( -d','
) fügen Sie anschließend das zwei letzte Feld ( NF
ist der Index des letzten Feldes und $NF
ist der String , den sein Index ist NF
. Also $(NF-1)
das zweite Feld vor dem letzten Feld) von Datei1 , wenn dieser Index neu definiert oder teilt mit Komma Zuschauer ( -F','
).
Mit awk
und paste
(Option B)
Dieser Befehl ist auch derselbe wie oben ( $3
und $4
zeigt auf das dritte und vierte Feld jeder Zeile aus Datei1):
paste -d',' file2 <(awk -F',' '{print $3","$4}' file1)
Oder eine andere Lösung mit cut
Befehl:
paste -d, <(cut -d, -f1 file1) <(cut -d, -f2 file2) <(cut -d, -f3- file1)
Befehl cut im obigen Befehl schneide zuerst das erste Feld ( -f1
das mit Komma-Trennzeichen ( -d.
) indiziert wurde ) aus file1 ( cut -d, -f1 file1
) aus, dann schneide das zweite Feld von file2 () aus und füge es abschließend aus und füge cut -d, -f2 file2
die dritte Spalte ( -f3
) in die nächsten ( -
) ein von file1 ( cut -d, -f3- file1
) wieder.
Dieser Befehl gibt auch das gleiche Ergebnis zurück:
paste -d, <(awk -F',' '{print $1}' file1) <(awk -F',' '{print $2}' file2) <(awk -F',' '{print $3","$4}' file1)
Einfügen des zweiten Feldes aus Datei1 ( awk -F',' '{print $1}' file1
), Drucken eines Kommas ( -d,
), Einfügen der zweiten Spalte aus Datei2 ( awk -F',' '{print $2}' file2
) und erneutes Einfügen der zweiten und letzten Spalte von Datei1 ( awk -F',' '{print $3","$4}' file1
).