ด้วยawkคำสั่งเท่านั้น:
awk -F, '{getline f1 <"file2" ;print f1,$3,$4}' OFS=, file1
รับบรรทัดจาก file1 และเก็บไว้ในตัวแปรโลคัลf1จากนั้นพิมพ์บรรทัดที่เก็บไว้f1และพิมพ์ฟิลด์ที่สาม ( $3) และถัดไป ( $3) จาก file1 ซึ่งคั่นด้วยเครื่องหมายจุลภาค,โดยสิ้นเชิงและเปลี่ยน OFS (ตัวคั่นฟิลด์เอาท์พุต [ช่องว่างด้วย เริ่มต้น]) ถึงเครื่องหมายจุลภาค ( ,)
คำสั่งสั้น ๆ จะเป็นดังนี้:
paste -d, file2 <(cut -d, -f3- file1)
เอบีซีดี
เอบีซีดี
เอบีซีดี
เอบีซีดี
วาง file2 จากนั้นตัดและวางคอลัมน์ที่สามไปยังถัดไป ( -f3-) จาก file1
ด้วยawkและpaste(ตัวเลือก A)
คำสั่งด้านล่างยังคัดลอกสองคอลัมน์สุดท้าย ( C,D) จาก file1 ที่ท้ายบรรทัดแต่ละบรรทัดใน file2:
paste -d',' file2 <(awk -F',' '{print $(NF-1)","$NF}' file1)
คำสั่งข้างต้นวางเนื้อหา file2 จากนั้นพิมพ์ตัวคั่นจุลภาค ( -d',') แล้ววางสองฟิลด์สุดท้าย ( NFเป็นดัชนีของฟิลด์สุดท้ายและ$NFเป็นสตริงที่ดัชนีของมันคือNFดังนั้น$(NF-1)ฟิลด์ที่สองก่อนฟิลด์สุดท้าย) จาก file1 เมื่อดัชนีเหล่านั้นนิยามใหม่ หรือแยกด้วยเครื่องหมายจุลภาค ( -F',')
ด้วยawkและpaste(ตัวเลือก B)
คำสั่งนี้เหมือนกันกับข้างบน ( $3และ$4ชี้ไปที่ฟิลด์ที่สามและสี่ของแต่ละบรรทัดจาก file1):
paste -d',' file2 <(awk -F',' '{print $3","$4}' file1)
หรือโซลูชันอื่นที่มีcutคำสั่ง:
paste -d, <(cut -d, -f1 file1) <(cut -d, -f2 file2) <(cut -d, -f3- file1)
คำสั่งcutในคำสั่งด้านบนก่อนตัดฟิลด์แรก ( -f1ซึ่งจัดทำดัชนีด้วยตัวคั่นจุลภาค ( -d.)) จาก file1 ( cut -d, -f1 file1) จากนั้นตัดและวางฟิลด์ที่สองของ file2 ( cut -d, -f2 file2) และในที่สุดก็ตัดแล้ววางคอลัมน์ที่สาม ( -f3) ไปยัง nexts ( -) จาก file1 ( cut -d, -f3- file1) อีกครั้ง
คำสั่งนี้จะส่งคืนผลลัพธ์เดียวกัน:
paste -d, <(awk -F',' '{print $1}' file1) <(awk -F',' '{print $2}' file2) <(awk -F',' '{print $3","$4}' file1)
วางฟิลด์ที่สองจาก file1 ( awk -F',' '{print $1}' file1) จากนั้นพิมพ์คอมมา ( -d,) จากนั้นวางคอลัมน์ที่สองจาก file2 ( awk -F',' '{print $2}' file2) จากนั้นวางคอลัมน์ที่สองและสุดท้ายของ file1 ( awk -F',' '{print $3","$4}' file1) อีกครั้ง