Giải pháp đơn giản nhất là:
awk '{print $2 "\t" $1}'
Tuy nhiên, có một số vấn đề. Nếu có thể có khoảng trắng ở một trong các lĩnh vực, bạn cần làm một trong số: (tùy thuộc vào nếu awk của bạn hỗ trợ -v)
awk -v FS='\t' '{print $2 "\t" $1}'
awk 'BEGIN{ FS="\t" } {print $2 "\t" $1}'
Ngoài ra, bạn có thể làm một trong số:
awk -v OFS='\t' '{print $2,$1}'
awk 'BEGIN{ OFS="\t" } {print $2,$1}'
awk -v FS='\t' -v OFS='\t' '{print $2,$1}' # if allowing spaces in fields
Một trong các bình luận hỏi, 'tên tập tin đi đâu'? awk được sử dụng làm bộ lọc, vì vậy nó thường xuất hiện dưới dạng:
$ some-cmd | awk ... | other-cmd
không có tên tệp nào được cung cấp. Hoặc, một tên tập tin có thể được cho là một cuộc tranh cãi sau khi tất cả các lệnh:
$ awk ... filename
Nguồn
2009-08-04 14:57:54
Nền tảng nào? Windows, Unix, Max. . . –
Đã thêm "Linux". Cảm ơn. –