बाशो में स्ट्रिंग से वर्ण हटा रहा है

Removing Characters From String Bash



कभी-कभी, आपको स्ट्रिंग से वर्णों को निकालने की आवश्यकता हो सकती है। कारण जो भी हो, लिनक्स आपको विभिन्न अंतर्निहित, आसान उपकरण प्रदान करता है जो आपको बैश में एक स्ट्रिंग से वर्ण निकालने की अनुमति देता है। यह आलेख आपको दिखाता है कि स्ट्रिंग से वर्णों को निकालने के लिए उन टूल का उपयोग कैसे करें।

लेख में निम्नलिखित कार्य करने का तरीका बताया गया है:







  • Sed . का उपयोग करके स्ट्रिंग से वर्ण निकालें
  • awk . का उपयोग करके स्ट्रिंग से वर्ण निकालें
  • कट का उपयोग करके स्ट्रिंग से वर्ण निकालें
  • tr . का उपयोग करके स्ट्रिंग से वर्ण निकालें

इस आलेख में दिखाए गए आदेश उबंटू 20.04 फोकल फोसा में किए गए थे। उपरोक्त उपकरण उपलब्ध अन्य लिनक्स वितरणों पर भी वही आदेश किए जा सकते हैं। हम कमांड चलाने के लिए डिफ़ॉल्ट टर्मिनल एप्लिकेशन का उपयोग करेंगे। आप Ctrl+Alt+T कीबोर्ड शॉर्टकट का उपयोग करके टर्मिनल एप्लिकेशन तक पहुंच सकते हैं।



sed . का उपयोग करके स्ट्रिंग से वर्ण निकालें

सेड एक शक्तिशाली और उपयोगी उपयोगिता है जिसका उपयोग पाठ की धाराओं को संपादित करने के लिए किया जाता है। यह एक गैर-संवादात्मक पाठ संपादक है जो आपको इनपुट स्ट्रीम पर मूल पाठ जोड़तोड़ करने की अनुमति देता है। स्ट्रिंग से अवांछित वर्णों को हटाने के लिए आप sed का भी उपयोग कर सकते हैं।



प्रदर्शन उद्देश्यों के लिए, हम एक नमूना स्ट्रिंग का उपयोग करेंगे और फिर इसे sed कमांड में पाइप करेंगे।





स्ट्रिंग से विशिष्ट वर्ण निकालें

Sed का उपयोग करके, आप एक विशिष्ट वर्ण को एक स्ट्रिंग से हटा सकते हैं। उदाहरण के लिए, स्ट्रिंग से h निकालने के लिए नमस्ते कैसी हो तुम? आदेश होगा:

$फेंक दिया 'नमस्ते कैसी हो तुम?' | एसईडी 'श्री//'

यह केवल स्ट्रिंग में 'h' की पहली घटना को हटा देगा।
String1 से विशिष्ट वर्ण निकालें
स्ट्रिंग से 'h' की सभी घटनाओं को हटाने के लिए, निम्न कमांड का उपयोग करें:



$फेंक दिया 'नमस्ते कैसी हो तुम?' | एसईडी 'एस/एच//जी'

कहा पे जी वैश्विक के लिए खड़ा है। यह स्ट्रिंग में 'h' की सभी घटनाओं को हटा देगा।
String2 से विशिष्ट वर्ण निकालें

स्ट्रिंग से पहला वर्ण निकालें

स्ट्रिंग से पहला अक्षर निकालने के लिए नमस्ते कैसी हो तुम? आदेश होगा:

$फेंक दिया 'नमस्ते कैसी हो तुम?' | एसईडी 'एस/^.//' फ़ाइल

जहां (।) बिल्कुल एक वर्ण से मेल खाता है और (^) स्ट्रिंग की शुरुआत में किसी भी वर्ण से मेल खाता है।
स्ट्रिंग से पहला वर्ण निकालें

स्ट्रिंग से अंतिम वर्ण निकालें

स्ट्रिंग से अंतिम वर्ण निकालने के लिए नमस्ते कैसी हो तुम? आदेश होगा:

$फेंक दिया 'नमस्ते कैसी हो तुम?' | एसईडी 'एस/.$//'

कहा पे ( . ) बिल्कुल एक वर्ण से मेल खाता है और ($) स्ट्रिंग के अंत में किसी भी वर्ण से मेल खाता है।
स्ट्रिंग से अंतिम वर्ण निकालें

स्ट्रिंग से प्रथम और अंतिम वर्ण निकालें

स्ट्रिंग से पहले और आखिरी अक्षर को हटाने के लिए नमस्ते कैसी हो तुम? आदेश होगा:

$फेंक दिया 'नमस्ते कैसी हो तुम?' | एसईडी एस /^.//; एस /.$//'

स्ट्रिंग से प्रथम और अंतिम वर्ण निकालें

awk . का उपयोग करके स्ट्रिंग से वर्ण निकालें

Awk एक शक्तिशाली स्क्रिप्टिंग भाषा है जिसका उपयोग टेक्स्ट प्रोसेसिंग के साथ-साथ पैटर्न मिलान के लिए किया जाता है। awk आपको टेक्स्ट को विभिन्न तरीकों से फ़िल्टर करने और बदलने की अनुमति देता है। आप स्ट्रिंग से वर्णों को निकालने के लिए awk का भी उपयोग कर सकते हैं।

प्रदर्शन उद्देश्यों के लिए, हम एक नमूना स्ट्रिंग का उपयोग करेंगे और फिर इसे awk कमांड में पाइप करेंगे।

एक स्ट्रिंग से पहला वर्ण निकालें

स्ट्रिंग से पहला अक्षर निकालने के लिए नमस्ते कैसी हो तुम? आदेश होगा:

$फेंक दिया 'नमस्ते कैसी हो तुम?' | awk '{प्रिंट सबस्ट्र ($0, 2)}'

जहां ($0) संपूर्ण लक्ष्य स्ट्रिंग है और (2) वर्ण प्रारंभ करने की स्थिति है। उपरोक्त आदेश पहले वर्ण, 'h,' वर्ण संख्या '1,' को हटा देता है और दूसरे वर्ण, 'e' से शुरू होने वाली लक्ष्य स्ट्रिंग लौटाता है।
एक स्ट्रिंग से पहला वर्ण निकालें

स्ट्रिंग से पहले दो अक्षर हटाएं

आप एक स्ट्रिंग की शुरुआत से वर्णों की एक विशिष्ट संख्या को भी हटा सकते हैं। उदाहरण के लिए, स्ट्रिंग से पहले दो अक्षर निकालने के लिए नमस्ते कैसी हो तुम? आदेश होगा:

$फेंक दिया 'नमस्ते कैसी हो तुम?' | awk '{प्रिंट सबस्ट्र ($0, 3)}'

उपरोक्त आदेश पहले दो वर्णों, 'वह' या वर्ण संख्या '1 और 2' को हटा देगा और वर्ण संख्या '3,' या 'l' से शुरू होने वाली लक्ष्य स्ट्रिंग लौटाएगा।
स्ट्रिंग से पहले दो अक्षर हटाएं

स्ट्रिंग से अंतिम वर्ण निकालें

से अंतिम वर्ण निकालने के लिए नमस्ते कैसी हो तुम? आदेश होगा:

$फेंक दिया 'नमस्ते कैसी हो तुम?' | awk '{प्रिंट पदार्थ ($0, 1, लंबाई($0)-1)}'

कहा पे लंबाई($0)-1 मतलब घटाना' 1 ' कुल वर्ण लंबाई से।

उपरोक्त आदेश वर्ण संख्या से शुरू होने वाली स्ट्रिंग को प्रिंट करेगा ' 1 ' तक लंबाई($0)-1 अंतिम चरित्र को दूर करने के लिए।

वहां ' 19 ' उपरोक्त स्ट्रिंग में वर्ण (रिक्त स्थान सहित)। यह कमांड कैरेक्टर से शुरू होकर सभी कैरेक्टर को प्रिंट करके काम करेगी। 1 'और चरित्र तक' १८ ,' अंतिम वर्ण को हटाते समय ' 19 । '

rmv अंतिम चार frm स्ट्रिंग

स्ट्रिंग से अंतिम दो वर्ण निकालें

से अंतिम दो अक्षर हटाने के लिए नमस्ते कैसी हो तुम? आदेश होगा:

$फेंक दिया 'नमस्ते कैसी हो तुम?' | awk '{प्रिंट सबस्ट्र ($0, 1, लंबाई($0)-2)}'

कहा पे लंबाई($0)-2 मतलब घटाना' 2 ' कुल वर्ण लंबाई से।

उपरोक्त आदेश वर्ण संख्या से शुरू होने वाली स्ट्रिंग को प्रिंट करेगा ' 1 'और वर्ण संख्या तक' लंबाई($0)-2 ,' स्ट्रिंग में अंतिम दो वर्णों को निकालने के लिए।
स्ट्रिंग से अंतिम दो वर्ण निकालें

स्ट्रिंग से पहले और अंतिम दोनों वर्णों को हटा दें

स्ट्रिंग से पहले और अंतिम दोनों वर्णों को निकालने के लिए नमस्ते कैसी हो तुम? आदेश होगा:

$फेंक दिया 'नमस्ते कैसी हो तुम?' | awk '{प्रिंट पदार्थ ($0, 2, लंबाई($0) - 2)}'

कहा पे लंबाई($0)-2 मतलब घटाना' 2 ' कुल वर्ण लंबाई से।

उपरोक्त आदेश वर्ण संख्या से शुरू होने वाली स्ट्रिंग को प्रिंट करेगा ' 2 'वर्ण संख्या तक' लंबाई($0)-2 ,' पहले और अंतिम वर्ण को हटाने के लिए।

स्ट्रिंग से पहले और अंतिम दोनों वर्णों को हटा दें

कट का उपयोग करके स्ट्रिंग से कैरेक्टर निकालें

कट एक कमांड-लाइन टूल है जिसका उपयोग आमतौर पर स्ट्रिंग या फ़ाइल से टेक्स्ट के एक हिस्से को निकालने और परिणाम को एक मानक आउटपुट में प्रिंट करने के लिए किया जाता है। आप इस कमांड का उपयोग स्ट्रिंग से वर्णों को हटाने के लिए भी कर सकते हैं।

प्रदर्शन उद्देश्यों के लिए, हम एक नमूना स्ट्रिंग का उपयोग करेंगे और फिर इसे कट कमांड पर पाइप करेंगे।

स्ट्रिंग से पहला वर्ण निकालें

स्ट्रिंग से पहला अक्षर निकालने के लिए, नमस्ते कैसी हो तुम? आदेश होगा:

$फेंक दिया 'नमस्ते कैसी हो तुम?' | कट गया -सी 2-

यह कमांड पहले कैरेक्टर को हटाते हुए, दूसरे कैरेक्टर से शुरू होकर, स्ट्रिंग को प्रिंट करेगा।
आरएमवी कट-सी

स्ट्रिंग से पहले चार वर्ण हटाएं

स्ट्रिंग से पहले चार अक्षर हटाने के लिए नमस्ते कैसी हो तुम? आदेश होगा:

$फेंक दिया 'नमस्ते कैसी हो तुम?' | कट गया -सी 5-

यह कमांड पहले चार वर्णों को हटाते हुए, पांचवें वर्ण से शुरू होकर, स्ट्रिंग को प्रिंट करेगा।
स्ट्रिंग से पहले चार वर्ण हटाएं

दूसरे और 5वें वर्णों के बीच स्ट्रिंग प्रिंट करें

स्ट्रिंग प्रिंट करने के लिए नमस्ते कैसी हो तुम? दूसरे और पांचवें अक्षर के बीच , आदेश होगा:

$फेंक दिया 'नमस्ते कैसी हो तुम?' | कट गया -सी 2-5

यह कमांड दूसरे कैरेक्टर से शुरू होकर पांचवें कैरेक्टर तक स्ट्रिंग को प्रिंट करेगा, जबकि बाकी के शुरुआती और आखिरी कैरेक्टर को हटा देगा।
rmv 2nd और 5th c2

स्ट्रिंग से अंतिम वर्ण निकालें

स्ट्रिंग से अंतिम वर्ण निकालने के लिए नमस्ते कैसी हो तुम? उपयोग कट गया कमांड के साथ फिरना , निम्नलिखित नुसार:

$फेंक दिया 'नमस्ते कैसी हो तुम?' | फिरना | कट गया -सी2- | फिरना

यह कमांड पहले स्ट्रिंग को उलट कर काम करता है, फिर पहले अक्षर को काटता है, और अंत में आपको वांछित आउटपुट देने के लिए इसे फिर से उलट देता है।
02स्ट्रिंग से अंतिम वर्ण हटाएं

स्ट्रिंग से अंतिम चार वर्ण निकालें

पंक्ति से अंतिम चार वर्णों को हटाने के लिए नमस्ते कैसी हो तुम? आदेश होगा:

$फेंक दिया 'नमस्ते कैसी हो तुम?' | फिरना | कट गया -c5- | फिरना

यह कमांड पहले स्ट्रिंग को उलट कर काम करता है, फिर पहले चार वर्णों को काटता है, और फिर वांछित आउटपुट देने के लिए इसे फिर से उलट देता है।
rmv पिछले चार वर्ण

स्ट्रिंग से पहले और अंतिम वर्ण हटाएं

स्ट्रिंग से पहले और आखिरी अक्षर को हटाने के लिए नमस्ते कैसी हो तुम? उपयोग कट गया कमांड के साथ फिरना , निम्नलिखित नुसार:

$फेंक दिया 'नमस्ते दुनिया!' | कट गया -सी2- | फिरना | कट गया -सी2- |फिरना

यह कमांड पहले कैरेक्टर को काटकर, फिर स्ट्रिंग को उल्टा करके और उसके पहले कैरेक्टर को काटकर काम करती है, और फिर आपको वांछित आउटपुट देने के लिए इसे फिर से उलट देती है।
आरएमवी पहले और आखिरी

tr . का उपयोग करके स्ट्रिंग से वर्ण निकालें

tr कमांड (अनुवाद के लिए संक्षिप्त) का उपयोग स्ट्रिंग से वर्णों का अनुवाद करने, निचोड़ने और हटाने के लिए किया जाता है। स्ट्रिंग से वर्णों को हटाने के लिए आप tr का भी उपयोग कर सकते हैं।

प्रदर्शन उद्देश्यों के लिए, हम एक नमूना स्ट्रिंग का उपयोग करेंगे और फिर इसे tr कमांड में पाइप करेंगे।

चरित्र की सभी घटनाओं को हटा दें

tr कमांड का उपयोग करके, आप अपनी स्ट्रिंग से लोअरकेस या अपरकेस वर्णों की सभी घटनाओं को हटा सकते हैं। उदाहरण के लिए, स्ट्रिंग से लोअरकेस वर्ण 'h' की सभी घटनाओं को हटाने के लिए, कमांड होगी:

$फेंक दिया 'नमस्ते कैसी हो तुम?' | एन एस -डीएच

सभी अवसरों को हटा दें 01

इसी तरह, स्ट्रिंग से अपरकेस वर्ण 'H' की सभी घटनाओं को हटाने के लिए, कमांड होगी:

$फेंक दिया 'नमस्ते कैसी हो तुम?' | एन एस -डीएच

आप लोअरकेस या अपरकेस अक्षरों को हटाने के लिए व्याख्या किए गए अनुक्रमों का भी उपयोग कर सकते हैं:

$फेंक दिया 'नमस्ते कैसी हो तुम?'| एन एस -डी [:ऊपरी:]

घटनाएँ कम

$फेंक दिया 'नमस्ते कैसी हो तुम?'| एन एस -डी [:निचला:]

घटनाएँ ऊपरी

लोअरकेस और अपरकेस वर्णों की सभी घटनाओं को हटा दें

आप एक स्ट्रिंग से लोअरकेस और अपरकेस दोनों वर्णों की सभी घटनाओं को भी हटा सकते हैं। उदाहरण के लिए, निम्न आदेश वर्ण 'एच' की सभी घटनाओं को हटा देगा, दोनों लोअरकेस और अपरकेस।

$फेंक दिया 'नमस्ते कैसी हो तुम?' | एन एस -डी'एचएच'

घटनाएँ ऊपरी और निचले

एक विशिष्ट श्रेणी में वर्णों की सभी घटनाओं को हटा दें

विशिष्ट श्रेणी 'डी-एच' में एक स्ट्रिंग से वर्णों की सभी घटनाओं को हटाने के लिए, कमांड होगा:

$फेंक दिया 'नमस्ते कैसी हो तुम?' | एन एस -डी 'डी-एच'

यह आदेश स्ट्रिंग में 'd-h' (d,e,f,g,h) श्रेणी के सभी वर्णों को हटा देगा।
घटनाएँ विशिष्ट श्रेणी

निष्कर्ष

Linux में, एक साधारण कार्य को पूरा करने के लिए हमेशा एक से अधिक तरीके होंगे। स्ट्रिंग से वर्णों को हटाने के साथ भी यही सच है। यह आलेख आपको ऐसा करने के चार अलग-अलग तरीकों के साथ-साथ एक स्ट्रिंग से अवांछित वर्णों को हटाने के कुछ उदाहरणों के साथ दिखाता है। यह तय करना कि किस टूल का उपयोग करना है, यह आपकी प्राथमिकताओं पर निर्भर करता है और इससे भी महत्वपूर्ण बात यह है कि आप क्या हासिल करना चाहते हैं।