เราจะระบุตัวคั่นฟิลด์สองฟิลด์ในคำสั่ง awk เมื่อหนึ่งในนั้นคือช่องว่างได้อย่างไร ฉันคิดว่าสิ่งนี้สามารถทำได้โดยใช้เงื่อนไข if-else ฝังตัวใน awk แต่ฉันไม่แน่ใจเกี่ยวกับคำสั่งที่แน่นอน
ไฟล์ตัวอย่างมีดังนี้:
cat test.txt
Swapnil Engineer 20000
Avinash:Doctor:30000
Dattu GovntJob 50000
Amol:Master:10000
ฉันต้องการพิมพ์คอลัมน์ที่สอง ($ 2) ผลลัพธ์ที่คาดหวังคือ:
Engineer
Doctor
GovntJob
Master
เมื่อฉันพยายามใส่ทั้งช่องว่างและโคลอนเป็นตัวคั่นฟิลด์มันล้มเหลวด้วยข้อผิดพลาดทางไวยากรณ์:
awk -F[ :] '{print $2}' test.txt
awk: cmd. line:1: :]
awk: cmd. line:1: ^ syntax error
เราจะใช้ตัวคั่นฟิลด์สองฟิลด์และใช้ฟังก์ชันการทำงาน awk ได้อย่างไร
ขอบคุณ ArielCo ชื่นชมมาก!
—
Swapnil Dhule
-F[ :]
(หนึ่งหาเรื่อง) มันได้และ-F[:
แผนภูมินี้ค่อนข้างมีประโยชน์ (โปรดสังเกตลูกศรแนวตั้งสำหรับเครื่องหมายคำพูดเดี่ยว / คู่)]