ฉันจะแยกสตริงเอเจนต์ผู้ใช้ออกจากล็อกไฟล์ได้อย่างไร


12

ขณะนี้ฉันกำลังใช้คำสั่งเช่นนี้เพื่อรับเนื้อหาที่ต้องการมากที่สุด:

grep "17\/Jul\/2011" other_vhosts_access.log | awk '{print $8}' | sort | uniq -c | sort -nr

ตอนนี้ฉันต้องการดูสตริงตัวแทนผู้ใช้ แต่ปัญหาคือพวกเขามีช่องว่างหลายแห่ง นี่คือบรรทัดไฟล์บันทึกทั่วไป UA เป็นส่วนสุดท้ายคั่นด้วยเครื่องหมายคำพูด:

example.com:80 [ip] - - [17/Jul/2011:23:59:59 +0100] "GET [url] HTTP/1.1" 200 6449 "[referer]" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.122 Safari/534.30"

มีเครื่องมือที่ดีกว่า awk สำหรับเรื่องนี้หรือไม่?

คำตอบ:


19

หากรูปแบบนั้นสอดคล้องกันและฟิลด์นั้นอยู่ในเครื่องหมายคำพูดคู่คุณสามารถใช้ awk หรือ cut "เป็นตัวคั่นฟิลด์:

awk -F\" '{print $6}'

หรือ:

cut -d\" -f 6

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.