कमांड "sed" जीएनयू / लिनक्स प्रकार के मुफ्त ऑपरेटिंग सिस्टम में यह एक बहुत ही बहुमुखी कमांड है, क्योंकि यह बदले में है इसे "इंटरैक्टिव" के बजाय "फ्लो" के लिए उन्मुख टेक्स्ट एडिटर माना जाता है, चूंकि यह इनपुट के रूप में एक फ़ाइल या मानक इनपुट को स्वीकार करता है, फिर प्रत्येक पंक्ति को संसाधित करता है और परिणाम मानक आउटपुट पर भेजा जाता है। यानी, SED (स्ट्रीम ईडीटर) हमें कमांड की एक श्रृंखला या एक कमांड फाइल के आधार पर फ़ाइल की विभिन्न लाइनों की सामग्री को संशोधित करने की अनुमति देता है।
आमतौर पर, कमांड «sed» का उपयोग फिल्टर के रूप में किया जाता है, क्योंकि यह आपके डेटा प्रविष्टि की प्रत्येक पंक्ति को पढ़ता है और फिर अनुरोधित कार्यों को करता है जो आमतौर पर पढ़े जाते हैं, निकालते हैं, संशोधित करते हैं और दिखाते हैं या सहेजते हैं। यद्यपि इसकी शक्ति ऐसी है इसके अलावा, यह हमें एक आरामदायक तरीके से, लाइनों, रिकॉर्ड्स को हटाने या किसी फाइल की लाइनों के भीतर कैरेक्टर स्ट्रिंग्स को बदलने की अनुमति देता है।
"Sed" कमांड का परिचय
पहले से ही अन्य पिछले प्रकाशनों में DesdeLinux हमने उक्त कमांड के उपयोग के बारे में बात की है और उदाहरण दिखाए हैं, जैसे कि: किसी फ़ाइल से विशिष्ट लाइनें कैसे हटाएं ... y टर्मिनल के साथ: रेगुलर एक्सप्रेशंस II का उपयोग करना: प्रतिस्थापन, इसलिए इस बार हम सीधे और अधिक उन्नत और व्यावहारिक रूप से इसका उपयोग करते हुए देखेंगे।
मूल रूप से कमांड «sed» में निम्नलिखित सिंटैक्स है:
sed comandos_sed archivo
जहाँ "कमांड किया गया" एक या एक से अधिक विशिष्टताओं से मेल खाती है, जो उन पंक्तियों के साथ क्या करना है, जिनसे पढ़ा जाता है "पुरालेख"।
एक अधिक व्यापक उपयोग हमें निम्नलिखित सिंटैक्स के साथ छोड़ देता है:
sed [-ns] '[direccion] instruccion argumentos'
कहाँ:
व्यावहारिक उदाहरण
एक रास्ते में सूची फ़ाइलें / फ़ोल्डर
उपयोगी कमांड लाइन जिसका उपयोग किसी निर्दिष्ट एक्स पथ की सामग्री को सूचीबद्ध करने के लिए किया जा सकता है और फिर किसी खोजे गए आइटम का पता लगाने / गिनने / छानने और प्रदर्शन करने के लिए एक बाद की कार्रवाई को इंगित करता है।
ls -l | awk '{ print $NF }' | sed 1d
उदाहरण:
"Sed" कमांड का उपयोग करने वाला यह दूसरा संस्करण बहुत उपयोगी है:
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed 's/^\.\///g' | xargs -n 1 basename
एक क्रम बनाएँ
स्क्रीन पर दिखाएँ या किसी संख्यात्मक अनुक्रम (या किसी अन्य इनपुट) में बनाई गई फ़ाइल को सहेजें, लेकिन क्षैतिज (रैखिक) और ऊर्ध्वाधर रूप में नहीं जिसे बाद में अन्य प्रक्रियाओं के लिए पढ़ा जा सकता है।
seq 100|tr '\n' ' '|sed 's, $,\n,g'
एक ही उदाहरण कमांड के संयोजन से किया जा सकता है «प्यास ” साथ "Printf" जैसा की नीचे दिखाया गया:
printf '%s ' {1..100}|sed 's/ $/\n/'
बहिष्करण के साथ फ़ाइलें हटाएं
फ़ाइल सिस्टम पथ के माध्यम से स्थानांतरण, फ़ाइलों को छोड़ने और फिर बाकी सामग्री को हटाने के लिए पैटर्न की तलाश में। सटीक और सावधानीपूर्वक सफाई के लिए बहुत उपयोगी है।
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed -e '/.*\.txt$/d' -e '/.*\.exe$/d' | xargs rm
वर्चुअल MAC एड्रेस बनाएं
खतरनाक साइटों को ब्राउज़ करने या हैकिंग कार्यों को अंजाम देने पर यह कदम कंप्यूटर सुरक्षा या सुरक्षा कार्यों के लिए उपयोगी हो सकता है।
MAC=`(date; cat /proc/interrupts) | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'` ; echo $MAC
अन्य कमांड के साथ "sed" कमांड का उपयोग करके समान प्रभाव प्राप्त किया जा सकता है, जैसा कि नीचे दिखाया गया है:
openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'
od -An -N10 -x /dev/random | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'
od /dev/urandom -w6 -tx1 -An|sed -e 's/ //' -e 's/ /:/g'|head -n 1
उदाहरण:
टर्मिनल प्रॉम्प्ट को अस्थायी रूप से बदलें
यह हमारे प्रॉम्प्ट में अस्थायी रूप से पैरामीटर डालने में हमारी मदद कर सकता है जो हमारे लिए उपयोगी हो सकता है जबकि हम एक विशेष गतिविधि करते हैं। इस उदाहरण में हम केवल प्रॉम्प्ट प्रदर्शित करने के तरीके को बदलेंगे।
export PS1="C:\$( pwd | sed 's:/:\\\\\\:g' )\\> "
"Ps" कमांड के आउटपुट को प्रबंधित करें
«पीएस» कमांड के आउटपुट को प्रारूपित करने की अनुमति देने के लिए बहुत ही व्यावहारिक कमांड ऑर्डर, जो कि टर्मिनल प्रोसेस मैनेजर से प्राप्त किया गया है।
sudo ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed "/^ 0.0 /d"
उदाहरण:
यह खपत की गई मेमोरी के प्रतिशत के अनुसार प्रक्रियाओं के लिए लागू किया जा सकता है:
sudo ps -e -o pmem,nice,state,cputime,args --sort pmem | sed "/^ 0.0 /d"
कमांड "सीड" का उपयोग करके कमांड लाइनों के ये उदाहरण मुझे आशा है कि आप इसे बहुत उपयोगी पाएंगे। और वे सीधे सांत्वना से या अप्रत्यक्ष रूप से एक स्क्रिप्ट (स्वचालित कार्य) में डालने के द्वारा उपयोग किए जाने की सेवा करते हैं।
शेल स्क्रिप्टिंग की अगली पोस्ट में हम अन्य कमांड्स का पता लगाएंगे।
यदि आप कमांड के बारे में थोड़ा और सीखना चाहते हैं तो "sed" इस लिंक पर जाएँ "यूनिक्स और लिनक्स के लिए ट्यूटोरियल और संक्षिप्त गाइड"या"मूल उपयोग»और यदि आप हमारे अपने ब्लॉग में शेल स्क्रिप्टिंग के बारे में अधिक जानना चाहते हैं, आप यहां क्लिक करके इस विषय पर हमारे अन्य प्रकाशनों पर एक नज़र डाल सकते हैं: स्क्रिप्टिंग DesdeLinux.