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

awk के साथ शुरुआत कैसे करें

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

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

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

awk के साथ शुरुआत कैसे करें
बड़ा करने के लिए क्लिक करें

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

# awk {'print'} test.txt

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

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

# awk {'print $1'} test.txt

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

—-total-cpu-usage—-
usr
5
13
8
0
1
1
1
0
1
1

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

# awk {'print $3'} test.txt

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

# awk {'print $1, $3, $7'} test.txt

आपके लिए काम करेगा:

—-total-cpu-usage—- -net/total-
usr idl read
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/password जैसी एक ट्रिकियर फाइल है जहां डेटा स्पेस या टैब के बजाय कोलन से अलग किया जाता है, तो awk इसे स्वचालित रूप से नहीं पकड़ता है। ऐसे मामलों में आप awk को सही सेपरेटर दे सकते हैं। फाइल का दूसरा कॉलम प्रिंट करने के लिए इस तरह की कमांड उपयोग करें:

# awk -F':' {'print $1'} /etc/passwd

यह कमांड आपको आपके सिस्टम पर सभी यूजर्स के यूजरनेम का आउटपुट देगा:

apple
mango
banana
watermelon
kiwi
orange

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

# awk '$9 == 200 { print $1, $7}' access.log

199.63.142.250 /2008/10/my-5-favourite-hangouts/
220.180.94.221 /2009/02/querious-a-mysql-client-for-the-mac/
67.190.114.46 /2009/05/
173.234.43.110 /2009/01/bicycle-rental/
173.234.38.110 /wp-comments-post.php

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

# awk '$9 == 200 { print $1}' access.log | sort | uniq -c | sort -nr

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 समझाया: मुख्य विशेषताएं और त्वरित सेटअप

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

  1. Mac पर SvnX के साथ सबवर्जन मास्टर करें: आपका संपूर्ण शुरुआती गाइड Mac पर SvnX के साथ सबवर्जन मास्टर करें: आपका संपूर्ण शुरुआती गाइड

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

  1. Parallels के साथ Mac पर Windows चलाएं: आसान चरण-दर-चरण गाइड Parallels के साथ Mac पर Windows चलाएं: आसान चरण-दर-चरण गाइड

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