Làm thế nào chúng ta có thể chỉ định hai dấu phân cách trường trong lệnh awk khi một trong số chúng là không gian? Tôi nghĩ điều này có thể được thực hiện bằng cách sử dụng một điều kiện if-other được nhúng trong awk, tuy nhiên tôi không chắc chắn về lệnh chính xác.
Tệp mẫu như sau:
cat test.txt
Swapnil Engineer 20000
Avinash:Doctor:30000
Dattu GovntJob 50000
Amol:Master:10000
Tôi muốn in cột thứ hai ($ 2). Sản lượng dự kiến là:
Engineer
Doctor
GovntJob
Master
Khi tôi cố gắng đặt cả không gian và dấu hai chấm làm dấu phân cách trường, nó đã thất bại với lỗi cú pháp:
awk -F[ :] '{print $2}' test.txt
awk: cmd. line:1: :]
awk: cmd. line:1: ^ syntax error
Làm thế nào chúng ta có thể sử dụng hai dấu tách trường và sử dụng chức năng awk?
Cảm ơn ArielCo, rất cảm kích!
—
Swapnil Dhule
-F[ :]
(một đối số) nó có-F[:
và]
. Biểu đồ này khá tiện dụng (lưu ý các mũi tên dọc cho dấu ngoặc đơn / kép).