- Awk और sed में क्या अंतर है?
- किस तरह के आवेदन सेड और ऑक टूल के लिए सर्वश्रेष्ठ उपयोग के मामले हैं?
जवाबों:
sed
एक धारा संपादक है। यह प्रति-पंक्ति के आधार पर वर्णों की धाराओं के साथ काम करता है। इसमें एक आदिम प्रोग्रामिंग भाषा है जिसमें गोटो-स्टाइल लूप और सरल सशर्त (पैटर्न मिलान और पता मिलान के अलावा) शामिल हैं। अनिवार्य रूप से केवल दो "चर" हैं: पैटर्न स्पेस और होल्ड स्पेस। स्क्रिप्ट की पठनीयता मुश्किल हो सकती है। गणितीय संक्रियाएँ असाधारण रूप से सबसे अच्छी तरह अजीब होती हैं।
sed
कमांड लाइन विकल्प और भाषा सुविधाओं के लिए विभिन्न स्तरों के समर्थन के विभिन्न संस्करण हैं ।
awk
प्रति पंक्ति के आधार पर सीमांकित क्षेत्रों की ओर उन्मुख है। यह बहुत अधिक मजबूत सहित प्रोग्रामिंग निर्माणों है if
/ else
, while
, do
/ while
और for
(सी-शैली और सरणी यात्रा)। चर और एकल-आयाम साहचर्य सरणियों प्लस (IMO) कुल्डी बहु-आयाम सरणियों के लिए पूर्ण समर्थन है। गणितीय संक्रियाएँ सी printf
। में होती हैं। "AWK" में "K" का अर्थ " K ernighan" है जैसा कि "C Programming Language" की "Kernighan and Ritchie" की प्रसिद्धि ( A ho ho और W einberger को नहीं भूलना )। एक व्यक्ति का उपयोग कर शैक्षणिक साहित्यिक चोरी का पता लगा सकता है awk
।
GNU awk
( gawk
) में कई एक्सटेंशन हैं, जिनमें नवीनतम संस्करण में सच बहुआयामी सरणियाँ शामिल हैं। awk
सहित mawk
और के अन्य रूपांतर हैं nawk
।
दोनों कार्यक्रम पाठ के चयन और प्रसंस्करण के लिए नियमित अभिव्यक्ति का उपयोग करते हैं।
sed
जहां पाठ में पैटर्न हैं, मैं उसका उपयोग करना चाहूंगा । उदाहरण के लिए, आप सभी नकारात्मक संख्याओं को कुछ पाठों में बदल सकते हैं जो "अंक के अनुक्रम के बाद" माइनस-साइन के रूप में हैं (उदाहरण के लिए "-231.45") "एकाउंटेंट के कोष्ठक" फॉर्म (उदाहरण के लिए "(231.45)" ) इसका उपयोग करना (जिसमें सुधार की गुंजाइश है):
sed 's/-\([0-9.]\+\)/(\1)/g' inputfile
मैं तब उपयोग करता हूँ awk
जब पाठ पंक्तियों और स्तंभों की तरह दिखता है या, जैसा awk
कि उन्हें "रिकॉर्ड" और "फ़ील्ड" के रूप में संदर्भित करता है। अगर मैं ऊपर जैसा एक ऑपरेशन करने जा रहा था, लेकिन केवल एक साधारण कॉमा सीमांकित फ़ाइल में तीसरे क्षेत्र पर मैं कुछ कर सकता हूं:
awk -F, 'BEGIN {OFS = ","} {gsub("-([0-9.]+)", "(" substr($3, 2) ")", $3); print}' inputfile
बेशक वे बहुत ही सरल उदाहरण हैं जो क्षमताओं की पूरी श्रृंखला का वर्णन नहीं करते हैं जो प्रत्येक को पेश करना पड़ता है।
sed
: sed.sourceforge.net/#scripts
1) awk और sed में क्या अंतर है?
दोनों ऐसे उपकरण हैं जो पाठ को रूपांतरित करते हैं। लेकिन बस पाठ में हेरफेर करने के अलावा और चीजें भी कर सकते हैं। इसकी प्रोग्रामिंग भाषा, जो आप प्रोग्रामिंग में सीखते हैं, जैसे कि सरणियाँ, छोरों, अगर / और प्रवाह नियंत्रण आदि के साथ आप "प्रोग्राम" कर सकते हैं, साथ ही साथ आप "कोड" भी लिख सकते हैं, लेकिन आप इसमें लिखे गए कोड को बनाए नहीं रखना चाहेंगे। ।
2) किस तरह के आवेदन सबसे अच्छा उपयोग मामलों के लिए sed और awk उपकरण हैं?
निष्कर्ष: बहुत सरल पाठ पार्सिंग के लिए sed का उपयोग करें। उससे आगे कुछ भी, जागना बेहतर है। वास्तव में, आप sed को पूरी तरह से खोद सकते हैं और बस awk का उपयोग कर सकते हैं। चूंकि उनके कार्य ओवरलैप और awk अधिक कर सकते हैं, बस awk का उपयोग करें। आप अपने सीखने की अवस्था को कम कर देंगे।
sed
, 's/search/replace'
यह awk
सिंटैक्स की तुलना में टाइप करने के लिए आसान है और आपको ज्यादातर समय की आवश्यकता है।
दोनों उपकरण पाठ के साथ काम करने के लिए हैं और ऐसे कार्य हैं जिनके लिए दोनों उपकरणों का उपयोग किया जा सकता है।
मेरे लिए उन्हें अलग करने का नियम है: उन sed
कार्यों को स्वचालित करने के लिए जिनका उपयोग आप अन्यथा पाठ संपादक में मैन्युअल रूप से करेंगे। इसलिए इसे स्ट्रीम एडिटर कहा जाता है । (आप पाठ को संपादित करने के लिए समान कमांड का उपयोग कर सकते हैं)। का प्रयोग करें awk
आप पाठ का विश्लेषण करने, उनकी गिनती के मैदान, calculate योग, निकालने और पुनर्निर्माण संरचनाओं आदि अर्थ चाहते हैं
इसके अलावा आपको भूलना नहीं चाहिए grep
। grep
यदि आप केवल किसी पाठ (फ़ाइल) में कुछ खोजना / निकालना चाहते हैं तो उसका उपयोग करें