Dengan hanya awk
perintah:
awk -F, '{getline f1 <"file2" ;print f1,$3,$4}' OFS=, file1
Dapatkan baris dari file1 dan simpan ke dalam variabel lokal f1
, lalu cetak baris yang disimpan di dalam f1
dan akhirnya cetak bidang ketiga ( $3
) dan sebagainya ( $3
) dari file1 yang dipisahkan dengan koma ,
sama sekali, dan ubah OFS (pemisah bidang keluaran [spasi oleh default]) ke koma ( ,
).
Perintah singkatnya akan seperti ini:
paste -d, file2 <(cut -d, -f3- file1)
A, B, C, D
A, B, C, D
A, B, C, D
A, B, C, D
tempel file2, lalu potong dan tempel kolom ketiga ke berikutnya ( -f3-
) dari file1.
Dengan awk
dan paste
(opsi A)
Perintah di bawah ini juga menyalin dua kolom terakhir ( C,D
) dari file1 di akhir setiap baris di file2:
paste -d',' file2 <(awk -F',' '{print $(NF-1)","$NF}' file1)
Perintah di atas, tempel konten file2 lalu cetak koma pembatas ( -d','
) kemudian tempelkan dua bidang terakhir ( NF
adalah indeks bidang terakhir dan $NF
adalah string yang indeksnya NF
. Jadi $(NF-1)
adalah bidang kedua sebelum bidang terakhir) dari file1 ketika indeks tersebut mendefinisikan kembali atau membelah dengan penonton koma ( -F','
).
Dengan awk
dan paste
(opsi B)
Perintah ini juga sama seperti di atas ( $3
dan $4
menunjuk ke bidang ketiga dan keempat dari setiap baris dari file1):
paste -d',' file2 <(awk -F',' '{print $3","$4}' file1)
Atau solusi lain dengan cut
perintah:
paste -d, <(cut -d, -f1 file1) <(cut -d, -f2 file2) <(cut -d, -f3- file1)
perintah cut di perintah di atas pertama memotong bidang pertama ( -f1
yang diindeks dengan koma pembatas ( -d.
)) dari file1 ( cut -d, -f1 file1
), kemudian memotong dan menempelkan bidang kedua file2 ( cut -d, -f2 file2
) dan akhirnya memotong dan menempelkan kolom ketiga ( -f3
) ke yang berikutnya ( -
) dari file1 ( cut -d, -f3- file1
) lagi.
Perintah ini juga mengembalikan hasil yang sama:
paste -d, <(awk -F',' '{print $1}' file1) <(awk -F',' '{print $2}' file2) <(awk -F',' '{print $3","$4}' file1)
tempel bidang kedua dari file1 ( awk -F',' '{print $1}' file1
) lalu cetak koma ( -d,
), lalu tempel kolom kedua dari file2 ( awk -F',' '{print $2}' file2
), akhirnya tempel kembali kolom kedua dan terakhir dari file1 ( awk -F',' '{print $3","$4}' file1
).