Chỉ với awklệnh:
awk -F, '{getline f1 <"file2" ;print f1,$3,$4}' OFS=, file1
Lấy một dòng từ tệp1 và lưu nó vào biến cục bộ f1, sau đó in dòng được lưu trữ f1và cuối cùng in các trường thứ ba ( $3) và tiếp theo ( $3) từ tệp 1 được phân tách bằng dấu phẩy ,và thay đổi OFS (dấu tách trường đầu ra [dấu cách mặc định]) thành dấu phẩy ( ,).
Lệnh ngắn sẽ như thế này:
paste -d, file2 <(cut -d, -f3- file1)
A B C D
A B C D
A B C D
A B C D
dán tệp2, sau đó cắt và dán cột thứ ba sang cột tiếp theo ( -f3-) từ tệp1.
Với awkvà paste(tùy chọn A)
Lệnh bên dưới cũng sao chép hai cột cuối cùng ( C,D) từ tệp1 ở cuối mỗi dòng trong tệp2:
paste -d',' file2 <(awk -F',' '{print $(NF-1)","$NF}' file1)
Lệnh trên dán nội dung file2 sau đó in dấu phân cách dấu phẩy ( -d',') sau đó dán hai trường cuối cùng ( NFlà chỉ mục của trường cuối cùng và $NFlà chuỗi có chỉ mục của nó NF. Vì vậy, $(NF-1)trường thứ hai trước trường cuối cùng) từ tệp1 khi các chỉ mục đó xác định lại hoặc chia nhỏ với khán giả dấu phẩy ( -F',').
Với awkvà paste(tùy chọn B)
Lệnh này cũng giống như trên ( $3và $4trỏ đến trường thứ ba và thứ ba của mỗi dòng từ tệp1):
paste -d',' file2 <(awk -F',' '{print $3","$4}' file1)
Hoặc một giải pháp khác với cutlệnh:
paste -d, <(cut -d, -f1 file1) <(cut -d, -f2 file2) <(cut -d, -f3- file1)
Lệnh cắt trong lệnh trên trước tiên cắt trường đầu tiên ( -f1được lập chỉ mục bằng dấu phẩy dấu phẩy ( -d.)) từ tệp1 ( cut -d, -f1 file1), sau đó cắt và dán trường thứ hai của tệp2 ( cut -d, -f2 file2) và cuối cùng cắt và dán cột thứ ba ( -f3) vào nexts ( -) từ file1 ( cut -d, -f3- file1) một lần nữa.
Lệnh này cũng trả về kết quả tương tự:
paste -d, <(awk -F',' '{print $1}' file1) <(awk -F',' '{print $2}' file2) <(awk -F',' '{print $3","$4}' file1)
dán trường thứ hai từ tệp1 ( awk -F',' '{print $1}' file1) sau đó in dấu phẩy ( -d,), sau đó dán cột thứ hai từ tệp2 ( awk -F',' '{print $2}' file2), cuối cùng dán lại cột thứ hai và cột cuối cùng của tệp1 ( awk -F',' '{print $3","$4}' file1).