Mit nur awkBefehl:
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, f1und drucken Sie schließlich das dritte ( $3) und $3vierte ( ) 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 awkund 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 ( NFist der Index des letzten Feldes und $NFist 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 awkund paste(Option B)
Dieser Befehl ist auch derselbe wie oben ( $3und $4zeigt 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 cutBefehl:
paste -d, <(cut -d, -f1 file1) <(cut -d, -f2 file2) <(cut -d, -f3- file1)
Befehl cut im obigen Befehl schneide zuerst das erste Feld ( -f1das 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 file2die 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).