Computer >> कंप्यूटर >  >> स्मार्टफोन्स >> Linux

awk का उपयोग कैसे शुरू करें

awk, sed, और grep Linux या UNIX कमांड लाइन में मेरे तीन पसंदीदा उपकरण हैं। वे सभी काफी शक्तिशाली हैं। आज हम देखेंगे कि इसका उपयोग करने में आसानी के लिए awk के साथ क्रैकिंग कैसे करें। फिर हम आपके लिए चीजों को थोड़ा और मजेदार बनाने के लिए कुछ उपयोगी awk one लाइनर देखेंगे।

AWK एक प्रोग्रामिंग भाषा है जिसे टेक्स्ट-आधारित डेटा को या तो फ़ाइलों या डेटा स्ट्रीम में संसाधित करने के लिए डिज़ाइन किया गया है। इसे 1970 के दशक में बेल लैब्स में बनाया गया था। हालांकि यह काफी पुराना है, लेकिन इसकी उम्र से मूर्ख मत बनो। यह जो करता है उसमें अत्यंत शक्तिशाली और कुशल है। चलो अब अपने हाथ गंदे करते हैं।

इससे पहले कि हम जटिल कार्यप्रणाली और awk के उपयोग में तल्लीन हों, आइए आपको इसकी मूल बातें शुरू करते हैं। हम इस अभ्यास के लिए एक डमी फ़ाइल बनाएंगे और उसका उपयोग करेंगे। आप किसी भी टेक्स्ट फ़ाइल का उपयोग कर सकते हैं, जैसे कि आपके सिस्टम से लॉग। मैं अपने पसंदीदा सिस्टम मॉनिटरिंग टूल में से एक से एक नमूना आउटपुट का उपयोग करूंगा - Dstat. यह रहा आउटपुट:

awk का उपयोग कैसे शुरू करें
बड़ा करने के लिए क्लिक करें

यह awk को संभालने के लिए एक आदर्श आउटपुट है। awk अल्पविराम या टैब से अलग की गई सामग्री के साथ बहुत अच्छा है। आप देखेंगे कि जल्द ही क्यों। तो या तो कुछ समान डेटा बनाएं या उपरोक्त मेरे उदाहरण को एक डमी फ़ाइल में कॉपी और पेस्ट करें जिसे test.txt जैसा कुछ कहा जाता है। अपने Linux कंप्यूटर पर एक टर्मिनल विंडो लॉन्च करें। लिनक्स के लगभग सभी फ्लेवर awk के साथ शिप करते हैं। यदि आपको कोई ऐसा मिल गया है जिसके पास किसी कारण से यह नहीं है तो कृपया इसे स्थापित करें। टर्मिनल विंडो पर उस निर्देशिका से निम्नलिखित टाइप करें जहाँ आपने test.txt फ़ाइल संग्रहीत की है -

# awk {'प्रिंट'} test.txt

आउटपुट में टेक्स्ट फ़ाइल की संपूर्ण सामग्री होनी चाहिए। इसमें क्या मजा है।

अब देखते हैं कि आप किसी कॉलम को कैसे चुन सकते हैं और उसे कैसे प्रिंट कर सकते हैं। निम्न आदेश निष्पादित करें:

# awk {'प्रिंट $1'} test.txt

अब हम awk को टेक्स्ट फ़ाइल के पहले कॉलम को प्रिंट करने के लिए कह रहे हैं। यह स्वचालित रूप से पता लगाएगा कि फ़ाइल एक टैब से अलग की गई है और सामग्री के केवल पहले कॉलम को प्रिंट करती है। आपको आउटपुट में कुछ इस तरह दिखना चाहिए:

—-कुल-सीपीयू-उपयोग—-
usr
5
13
8
0
1
1
1
0
1
1

आप अपनी पसंद के किसी भी कॉलम के लिए ऐसा ही कर सकते हैं। यदि आप ऊपर दिखाए गए कमांड के ऊपर तीसरे कॉलम चेंज कमांड को प्रिंट करना चाहते हैं:

# awk {'प्रिंट $3'} test.txt

आप कई कॉलमों को awk प्रिंट भी कर सकते हैं। इसलिए यदि आप चाहते हैं कि पहला, तीसरा और सातवां कॉलम छपा हो तो उन्हें कॉमा से अलग किए गए कमांड में जोड़ें।

# awk {'प्रिंट $1, $3, $7′} test.txt

आपके लिए चाल चलेगा:

—-total-cpu-usage—- -net/total-
usr idl पढ़ें
5 93 154k
13 87 0
8 92 0
0 99 0
1 97 0
1 98 0
1 99 0
0 99 0
1 99 0
1 100 0

यदि आपके पास /etc/पासवर्ड फ़ाइल जैसी कोई पेचीदा फ़ाइल है, जहां डेटा को कोलन द्वारा अलग किया जाता है, न कि रिक्त स्थान या टैब, तो awk उसे स्वचालित रूप से नहीं उठाता है। ऐसे मामलों में आप awk को सही सेपरेटर से फीड कर सकते हैं। फ़ाइल के दूसरे कॉलम को प्रिंट करने के लिए इस तरह कमांड का उपयोग करें:

# awk -F':' {'प्रिंट $1'} /etc/passwd

यह आदेश आपको आपके सिस्टम के सभी उपयोक्ताओं के उपयोक्तानामों का आउटपुट देगा:

सेब
आम
केला
तरबूज
कीवी
संतरा

आप किसी अन्य प्रकार के विभाजकों के साथ भी ऐसा ही कर सकते हैं। आप अपनी लॉग फ़ाइलों को पार्स करने के लिए awk का भी उपयोग कर सकते हैं। उदाहरण के लिए, यदि आप अपने वेब सर्वर पर एक्सेस किए गए सभी आईपी पते और संबंधित वेब यूआरएल देखना चाहते हैं तो आप यह जानकारी प्राप्त करने के लिए अपने वेब सर्वर के एक्सेस लॉग को पार्स करने के लिए awk का उपयोग कर सकते हैं। निम्न आदेश का प्रयोग करें:

# awk '$9 ==200 { प्रिंट $1, $7}' access.log

199.63.142.250 /2008/10/my-5-पसंदीदा-हैंगआउट/
220.180.94.221 /2009/02/queious-a-mysql-client-for-the-mac/
67.190.114.46 / 2009/05/
173.234.43.110 /2009/01/साइकिल-रेंटल/
173.234.38.110 /wp-comments-post.php

इस तरह पार्सिंग का उपयोग करके आप यह पता लगा सकते हैं कि कोई आपकी वेबसाइट पर बहुत अधिक आ रहा है, क्योंकि वे जानकारी चुरा रहे हैं। आप इस जानकारी को क्रमबद्ध भी कर सकते हैं। मान लें कि आप जानना चाहते हैं कि कोई विशेष IP पता आपकी वेबसाइट पर कितनी बार आया है

# awk '$9 ==200 {प्रिंट $1}' access.log | सॉर्ट | यूनिक-सी | सॉर्ट -एनआर

46 122.248.161.1
35 122.248.161.2
26 65.202.21.10
24 67.195.111.46
19 144.36.231.111
18 59.183.121.71


  1. G Suite क्या है और कैसे शुरू करें

    G Suite, पूर्व में Google Apps, Google के क्लाउड-आधारित एंटरप्राइज़ एप्लिकेशन का एक संग्रह है। इन क्लाउड ऐप्स का उपयोग करने के लिए आपको केवल एक सक्रिय इंटरनेट कनेक्शन और एक ब्राउज़र की आवश्यकता है। पारंपरिक व्यावसायिक अनुप्रयोग स्थानीय रूप से दस्तावेज़ बनाते और संग्रहीत करते हैं। यह साझाकरण और सहयोग

  1. SvnX का उपयोग करके सबवर्सन के साथ आरंभ करें

    यदि आप एक डेवलपर हैं, तो संस्करण नियंत्रण सॉफ़्टवेयर आपको अपने कोड में परिवर्तनों का ट्रैक रखने की अनुमति देता है। यह उन परियोजनाओं पर आवश्यक है जहां आप एक टीम के हिस्से के रूप में काम कर रहे हैं, जिससे आप परिवर्तनों को ट्रैक कर सकते हैं जैसे वे होते हैं। जबकि जीआईटी जैसी सेवाएं लोकप्रिय हैं, खासकर

  1. समानांतरों का उपयोग करके मैक पर विंडोज़ कैसे प्राप्त करें?

    मैक पर विंडोज ओएस और ऐप्स का उपयोग करना तब आसान हो सकता है जब आप दोनों प्लेटफॉर्म का अक्सर उपयोग कर रहे हों। अब, आपको सोचना चाहिए कि यह कैसे संभव है, क्योंकि मैक को उपयोगकर्ता शत्रुतापूर्ण कहा जाता है। खैर, ऐसे ऐप्स हैं जो इसे संभव बना सकते हैं। Mac पर Windows प्राप्त करने के सबसे लोकप्रिय तरीकों मे