আমি লগ ফাইল থেকে কীভাবে ব্যবহারকারীর এজেন্ট স্ট্রিংগুলি বের করব?


12

সর্বাধিক অনুরোধ করা সামগ্রী পেতে বর্তমানে আমি এইভাবে একটি কমান্ড চালাচ্ছি:

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

আমি এখন ব্যবহারকারীর এজেন্ট স্ট্রিংগুলি দেখতে চাই, তবে সমস্যাটি হ'ল তারা বেশ কয়েকটি স্পেস অন্তর্ভুক্ত করে। এখানে একটি সাধারণ লগ ফাইল লাইন। সংযুক্ত আরব আমিরাত হ'ল শেষ বিভাগ যা উদ্ধৃতি চিহ্ন দ্বারা সীমিত করা হয়েছে:

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"

এর জন্য আরও ভাল সরঞ্জাম কি আছে?

উত্তর:


19

যদি সেই ফর্ম্যাটটি সামঞ্জস্যপূর্ণ হয় এবং ক্ষেত্রটি সত্যই ডাবল উদ্ধৃতিতে আবৃত থাকে আপনি "ফিল্ড ডিলিমিটার হিসাবে আঁশ ব্যবহার করতে পারেন বা কাটাতে পারেন :

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

বা:

cut -d\" -f 6

3
perl -ne 'if (/ "([^"] +) "" $ /) {$ ua {$ 1} ++; (কীগুলি% ua) {মুদ্রণ "$ ua {$ _} $ _ \ n এর জন্য "}} '\
  access_log
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.