- awk और sed के बीच क्या अंतर है?
- sed और awk tools के लिए मामलों का सबसे अच्छा उपयोग किस प्रकार का है?
उत्तर
sed
एक स्ट्रीम संपादक है। यह प्रति पंक्ति के आधार पर पात्रों की धाराओं के साथ काम करता है। इसमें एक आदिम प्रोग्रामिंग भाषा है जिसमें गोटो-स्टाइल लूप और सरल सशर्त (पैटर्न मिलान और पता मिलान के अलावा) शामिल हैं। अनिवार्य रूप से केवल दो "चर" हैं: पैटर्न स्थान और होल्ड स्पेस। स्क्रिप्ट की पठनीयता मुश्किल हो सकती है। गणितीय परिचालन सबसे अच्छा अजीब रूप से अजीब हैं।
कमांड लाइन विकल्पों और भाषा सुविधाओं के समर्थन के विभिन्न स्तरों के साथ sed
के विभिन्न संस्करण हैं।
awk
प्रति पंक्ति के आधार पर सीमित क्षेत्रों की ओर उन्मुख है। इसमें if
/else
, while
, do
/while
और for
(सी-स्टाइल और सरणी पुनरावृत्ति) सहित अधिक मजबूत प्रोग्रामिंग संरचनाएं हैं। चर और एकल-आयाम सहयोगी सरणी प्लस (आईएमओ) क्लुजी बहु-आयाम सरणी के लिए पूर्ण समर्थन है। गणितीय परिचालन सी में उन जैसा दिखता है। इसमें printf
और फ़ंक्शन हैं। "K" "AWK" के लिए "कश्मीर ernighan" खड़ा पुस्तक "सी प्रोग्रामिंग भाषा" के "Kernighan और रिची" के रूप में प्रसिद्धि ( हो और डब्ल्यू ए einberger भूलना नहीं)। कोई awk
का उपयोग करके अकादमिक साहित्य चोरी का एक डिटेक्टर लिख सकता है।
जीएनयू awk
(gawk
) में नवीनतम संस्करण में वास्तविक बहुआयामी सरणी समेत कई एक्सटेंशन हैं। awk
की अन्य भिन्नताएं हैं जिनमें mawk
और nawk
शामिल हैं।
दोनों प्रोग्राम पाठ का चयन और प्रसंस्करण के लिए नियमित अभिव्यक्तियों का उपयोग करते हैं।
मैं sed
का उपयोग करना चाहूंगा जहां पाठ में पैटर्न हैं। उदाहरण के लिए, आप "ऋणात्मक के ब्रैकेट्स" फ़ॉर्म (उदाहरण के लिए "(231) के साथ" अंकों के अनुक्रम के बाद "शून्य-चिह्न" के रूप में "पाठ के क्रम में" (उदाहरण के लिए "-231.45") में सभी नकारात्मक संख्याओं को प्रतिस्थापित कर सकते हैं।45)।: रिकॉर्ड "और" क्षेत्रों "अगर") का उपयोग इस (जो सुधार की गुंजाइश है)
sed 's/-\([0-9.]\+\)/(\1)/g' inputfile
मैं awk
का प्रयोग करेंगे जब पाठ अधिक पंक्तियों और स्तंभों की तरह दिखता है या awk
के रूप में, उन्हें को संदर्भित करता है " मैं के रूप में ऊपर एक समान आपरेशन क्या करने जा रहा था, लेकिन केवल एक साधारण अल्पविराम सीमांकित फ़ाइल में तीसरे क्षेत्र मैं की तरह कुछ कर सकता पर:
awk -F, 'BEGIN {OFS = ","} {gsub("-([0-9.]+)", "(" substr($3, 2) ")", $3); print}' inputfile
बेशक
उन सिर्फ बहुत ही सरल उदाहरण है कि उदाहरण देकर स्पष्ट नहीं है क्षमताओं की पूरी श्रृंखला जिसे प्रत्येक को पेश करना है।
1) अजीब और sed के बीच क्या अंतर है?
दोनों उपकरण हैं जो पाठ को बदलते हैं। लेकिन पाठ को छेड़छाड़ करने के अलावा और अधिक चीजें कर सकते हैं। प्रोग्रामिंग में सीखने वाली अधिकांश चीजों के साथ स्वयं एक प्रोग्रामिंग भाषा है, जैसे कि सरणी, लूप, अगर/अन्य प्रवाह नियंत्रण आदि। आप भी "प्रोग्राम" को भी कर सकते हैं, लेकिन आप इसमें लिखे गए कोड को बनाए रखना नहीं चाहेंगे ।
2) sed और awk tools के लिए किस प्रकार का एप्लिकेशन सबसे अच्छा उपयोग होता है?
निष्कर्ष: बहुत सरल पाठ पार्सिंग के लिए sed का उपयोग करें। उससे परे कुछ भी, अजीब बेहतर है। वास्तव में, आप पूरी तरह से sed ditch कर सकते हैं और बस अजीब का उपयोग करें। चूंकि उनके कार्य ओवरलैप और अजीब अधिक कर सकते हैं, बस अजीब का उपयोग करें। आप अपने सीखने की वक्र को भी कम कर देंगे।
सीखने की अवस्था के बारे में अच्छा बिंदु .. बहुत सारे टूल मिश्रण कर सकते हैं .. इसलिए मैं grep सीखना पसंद करूंगा और केवल अजीब .. sed के बारे में भूल जाते हैं :) – Outlier
^^ पर्याप्त sed। (क्षमा करें, मुझे करना था) –
मुझे लगता है कि sed सीखना बहुत आसान है, इसलिए आपको इसके लिए खाते की आवश्यकता है। जैसे ही आप अजीब मास्टर करना सीखते हैं, हो सकता है कि यह उन चीजों के लिए तेज़ी से इसका उपयोग करने में सक्षम हो, जो आपको अभी तक अजीब में कैसे करना है, यह जानने के लिए उपयोगी हो सकता है। –
दोनों टूल्स टेक्स्ट के साथ काम करने के लिए हैं और कार्यों के लिए दोनों टूल्स का इस्तेमाल किया जा सकता है।
मेरे लिए उन्हें अलग करने का नियम है: sed
का उपयोग उन कार्यों को स्वचालित करने के लिए करें जो आप अन्यथा पाठ संपादक में करेंगे। यही कारण है कि इसे स्ट्रीम संपादक कहा जाता है। (आप vim में पाठ को संपादित करने के लिए एक ही कमांड का उपयोग कर सकते हैं)। awk
का उपयोग करें यदि आप टेक्स्ट का विश्लेषण करना चाहते हैं, अर्थात् फ़ील्ड गिनती करना, कुल गणना करना, निकालना और संरचनाओं को पुनर्गठित करना आदि
इसके अलावा आपको grep
को नहीं भूलना चाहिए। grep
का उपयोग करें यदि आप केवल टेक्स्ट (फ़ाइल) में कुछ खोजना/निकालना चाहते हैं
- 1. sed/awk capitalize स्ट्रिंग्स
- 2. बैश/awk/sed/perl
- 3. sed या awk multiline
- 4. प्रिंटिंग वर्बोज़ प्रगति से sed और awk
- 5. मतभेद और sed
- 6. sed/awk: टेक्स्ट स्ट्रीम से पैटर्न निकालें
- 7. # {} $ {} और% {} के बीच क्या अंतर है?
- 8. [अपरिभाषित] और [,] के बीच क्या अंतर है?
- 9. $ और $$ के बीच क्या अंतर है?
- 10. के बीच क्या अंतर है:। और: आर !?
- 11. भिन्नता और '-' के बीच क्या अंतर है?
- 12. "$^एन" और "$ +" के बीच क्या अंतर है?
- 13. मैं, यहाँ awk, SED के बारे में हैरान हूँ आदि
- 14. क्या एसईडी -E के बीच का अंतर और
- 15. के बीच क्या अंतर है?
- 16. अंतर और कहां के बीच क्या अंतर है?
- 17. file_get_contents और fread बीच क्या अंतर है
- 18. क्या बीच का अंतर है :: और ::: स्काला
- 19. "। +" और "। +?" के बीच अंतर
- 20. $ {} और # {} के बीच अंतर क्या हैं?
- 21. sed और python नियमित अभिव्यक्तियों के बीच असंगतता
- 22. PHP के बीच क्या अंतर है और इसमें शामिल है?
- 23. अपवाद के .TOString() और मैसेज के बीच क्या अंतर है?
- 24. 7zip के 7z.sfx और 7zsd.sfx के बीच क्या अंतर है?
- 25. डीएल के फाइलवर्सन और उत्पादवर्जन के बीच क्या अंतर है?
- 26. UIImageView के फ्रेम और सीमाओं के बीच क्या अंतर है?
- 27. फ़ायरबग के console.log() और console.debug() के बीच क्या अंतर है?
- 28. पैरामीटर परिभाषाओं के बीच अंतर (प्रकार और नाम), और (प्रकार * नाम) के बीच अंतर क्या हैं?
- 29. ओरिएंटब संस्करणों के बीच क्या अंतर है?
- 30. एन्कोड/डीकोड के बीच क्या अंतर है?
unix.stackexchange पर एक संबंधित क्यूए: [क्या grep, awk और sed के लिए कोई बुनियादी ट्यूटोरियल है?] (Http: //unix.stackexchange .com/प्रश्न/2434/is-there-a-basic-tutorial-for-grep-awk-and-sed) – Dani