Sadece awkkomut ile:
awk -F, '{getline f1 <"file2" ;print f1,$3,$4}' OFS=, file1
Dosya1'den bir satır alın ve yerel değişkene depolayın f1, ardından depolanan satırı yazdırın f1ve son olarak virgülle ayrılmış dosya1'den üçüncü ( $3) ve ileri ( $3) alanlarını yazdırın ,ve OFS (çıktı alanı ayırıcısını [boşluk varsayılan]) - virgül ( ,).
Kısa komut şöyle olacaktır:
paste -d, file2 <(cut -d, -f3- file1)
A, B, C, D
A, B, C, D
A, B, C, D
A, B, C, D
dosya2'yi yapıştırın, ardından üçüncü sütunu -f3-dosya1'deki next ( ) öğesine yapıştırın .
İle awkve paste(A seçeneği)
Aşağıdaki komut ayrıca C,Ddosya2'deki dosya1'deki son iki sütunu ( ) kopyalar :
paste -d',' file2 <(awk -F',' '{print $(NF-1)","$NF}' file1)
Komutun üstüne file2 içeriğini yapıştırın , ardından bir virgül ayırıcı ( -d',') yazdırın ve sonra son iki alanı yapıştırın (son alanın NFdizini ve dizininin $NFbulunduğu dizedir NF. Yani $(NF-1)bu alan yeniden tanımlandığında dosya1'den son alanın önündeki ikinci alan) veya virgül izleyici ( -F',') ile böler .
İle awkve paste(B seçeneği)
Bu komut ayrıca yukarıdakiyle aynıdır ( $3ve $4dosya1'deki her satırın üçüncü ve dördüncü alanını işaret eder):
paste -d',' file2 <(awk -F',' '{print $3","$4}' file1)
Veya şu cutkomutu içeren başka bir çözüm :
paste -d, <(cut -d, -f1 file1) <(cut -d, -f2 file2) <(cut -d, -f3- file1)
kesim Yukarıdaki komutu komut (birinci alan kesme -f1virgül sınırlayıcı (dizinlenmiş -d.Dosya1 () 'den) cut -d, -f1 file1), daha sonra kesilmiş ve dosya2'nin (ikinci alan yapıştırma cut -d, -f2 file2) ve son olarak kesilmiş ve (üçüncü sütun yapıştırmak -f3(nExts için) -) dosya1 ( cut -d, -f3- file1) 'den tekrar.
Bu komut aynı sonucu döndürür:
paste -d, <(awk -F',' '{print $1}' file1) <(awk -F',' '{print $2}' file2) <(awk -F',' '{print $3","$4}' file1)
ikinci alanı dosya1'den ( awk -F',' '{print $1}' file1) -d,yapıştırın, ardından bir virgül ( ) yazdırın , sonra ikinci sütunu dosya2'den ( awk -F',' '{print $2}' file2) yapıştırın, son olarak dosya1'in ( ) ikinci ve son sütununu awk -F',' '{print $3","$4}' file1tekrar yapıştırın .