10 प्रैक्टिकल उदाहरण वाइल्डकार्ड्स का उपयोग करके लिनक्स में मैचनेम का उपयोग करना


वाइल्डकार्ड (जिसे मेटा वर्ण भी कहा जाता है) प्रतीक या विशेष वर्ण हैं जो अन्य वर्णों का प्रतिनिधित्व करते हैं। आप किसी भी कमांड जैसे ls कमांड या rm कमांड के साथ किसी दिए गए मानदंड से मेल खाने वाली फ़ाइलों को सूचीबद्ध करने या हटाने के लिए उनका उपयोग कर सकते हैं।

Read Also: लिनक्स में चैनिंग ऑपरेटर्स पर 10 उपयोगी प्रैक्टिकल उदाहरण

ये वाइल्डकार्ड शेल द्वारा व्याख्या किए जाते हैं और परिणाम आपके द्वारा चलाए गए कमांड पर वापस आ जाते हैं। लिनक्स में तीन मुख्य वाइल्डकार्ड हैं:

  • An asterisk (*) – matches one or more occurrences of any character, including no character.
  • Question mark (?) – represents or matches a single occurrence of any character.
  • Bracketed characters ([ ]) – matches any occurrence of character enclosed in the square brackets. It is possible to use different types of characters (alphanumeric characters): numbers, letters, other special characters etc.

आपको सावधानीपूर्वक यह चुनने की आवश्यकता है कि सही फ़ाइलनामों का मिलान करने के लिए कौन से वाइल्डकार्ड का उपयोग करना है: नीचे दिए गए उदाहरणों में बताया गया है कि उन सभी को एक ऑपरेशन में संयोजित करना भी संभव है।

कैसे लिनक्स में वाइल्डकार्ड का उपयोग करके फ़ाइलनाम से मिलान करें

इस लेख के उद्देश्य के लिए, हम प्रत्येक उदाहरण को प्रदर्शित करने के लिए निम्न फ़ाइलों का उपयोग करेंगे।

createbackup.sh  list.sh  lspace.sh        speaker.sh
listopen.sh      lost.sh  rename-files.sh  topprocs.sh

1। यह आदेश सभी फ़ाइलों को l (जो कि उपसर्ग है) से शुरू होने वाले नामों से मेल खाता है और किसी भी वर्ण की एक या अधिक घटनाओं के साथ समाप्त होता है।

$ ls -l l*	

2। यह उदाहरण * का एक और उपयोग दिखाता है users-0 के साथ पहले से फिल्माए गए सभी फ़ाइलनामों को कॉपी करने और किसी भी वर्ण की एक या अधिक घटनाओं के साथ समाप्त होने के लिए।

$ mkdir -p users-info
$ ls users-0*
$ mv -v users-0* users-info/	# Option -v flag enables verbose output

3। निम्न आदेश सभी फ़ाइलों से मेल खाता है जिनका नाम l के साथ शुरू होता है और उसके बाद किसी भी एक वर्ण का होता है और st.sh (जो प्रत्यय है) के साथ समाप्त होता है )।

$ ls l?st.sh	

4। वर्ग कोड में वर्णों के किसी भी अक्षर के बाद l से शुरू होने वाले नामों के साथ नीचे दी गई कमांड सभी फाइलों से मेल खाती है, लेकिन st.sh के साथ समाप्त होती है ।

$ ls l[abdcio]st.sh 

कैसे लिनक्स में मैच के लिए वाइल्डकार्ड गठबंधन करने के लिए

आप निम्न उदाहरणों में वर्णित के रूप में एक जटिल फ़ाइल नाम मिलान मानदंड बनाने के लिए वाइल्डकार्ड को जोड़ सकते हैं।

5। यह कमांड किसी भी दो वर्णों के साथ उपसर्गित सभी फ़ाइल नाम से मेल खाएगी st लेकिन किसी भी वर्ण की एक या अधिक घटना के साथ समाप्त होती है।

$ ls
$ ls ??st*

6। यह उदाहरण इन वर्णों के किसी भी कोड से शुरू होने वाले फ़ाइलनाम से मेल खाता है [clst] और किसी भी वर्ण की एक या अधिक घटना के साथ समाप्त होता है।

$ ls
$ ls [clst]*

7। इस उदाहरण में, केवल इन वर्णों में से किसी के साथ शुरू होने वाले फ़ाइल नाम [clst] इनमें से किसी एक [io] और फिर कोई भी एक वर्ण, उसके बाद t और अंत में, किसी भी वर्ण की एक या अधिक घटना को सूचीबद्ध किया जाएगा।

$ ls
$ ls [clst][io]?t*

8। यहां, किसी भी वर्ण की एक या अधिक घटना के साथ पहले से फिल्माए गए अक्षर, उसके बाद अक्षर tar और किसी भी वर्ण के एक या अधिक घटना के साथ समाप्त हो जाएंगे।

$ ls
$ rm *tar*
$ ls

कैसे लिनक्स में वर्ण सेट मैच के लिए

9। अब यह देखने देता है कि वर्णों के समूह को कैसे निर्दिष्ट किया जाए। सिस्टम उपयोगकर्ताओं की जानकारी वाले नीचे दिए गए फ़ाइल नाम पर विचार करें।

$ ls

users-111.list  users-1AA.list  users-22A.list  users-2aB.txt   users-2ba.txt
users-111.txt   users-1AA.txt   users-22A.txt   users-2AB.txt   users-2bA.txt
users-11A.txt   users-1AB.list  users-2aA.txt   users-2ba.list
users-12A.txt   users-1AB.txt   users-2AB.list  users-2bA.list

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

$ ls users-[0-9][a-z0-9][0-9]*

अगला कमांड फ़ाइल कोड से शुरू होता है, जिसमें users-i होता है, उसके बाद एक नंबर, एक निचला या ऊपरी केस अक्षर या नंबर होता है, फिर एक नंबर और किसी भी वर्ण की एक या अधिक घटनाओं के साथ समाप्त होता है।

$ ls users-[0-9][a-zA-Z0-9][0-9]*

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

$ ls users-[0-9][a-zA-Z0-9][a-zA-Z]*

लिनक्स में वर्णों के समूह को कैसे व्यवस्थित करें

10। आप ! प्रतीक का उपयोग करके वर्णों के एक सेट को नकार सकते हैं। निम्नलिखित कमांड सभी कोडनामों को सूचीबद्ध करता है जो <कोड> उपयोगकर्ता-मैं से शुरू होता है, उसके बाद एक नंबर, किसी भी मान्य फ़ाइल नामकरण वर्ण के अलावा एक नंबर, फिर एक निचला या ऊपरी मामला पत्र और किसी एक या अधिक घटनाओं के साथ समाप्त होता है चरित्र।

$ ls users-[0-9][!0-9][a-zA-Z]*

अभी के लिए इतना ही! यदि आपने उपरोक्त उदाहरणों को आज़माया है, तो अब आपको इस बात की अच्छी समझ होनी चाहिए कि वाइल्डकार्ड लिनक्स में फ़ाइलनाम से कैसे मेल खाते हैं।

आप इन निम्नलिखित लेखों को भी पढ़ना पसंद कर सकते हैं जो कि लिनक्स में वाइल्डकार्ड के उपयोग के उदाहरण दिखाते हैं:

  1. How to Extract Tar Files to Specific or Different Directory in Linux
  2. 3 Ways to Delete All Files in a Directory Except One or Few Files with Extensions
  3. 10 Useful Tips for Writing Effective Bash Scripts in Linux
  4. How to Use Awk and Regular Expressions to Filter Text or String in Files

यदि आपके पास कोई चीज़ साझा करने या प्रश्न पूछने के लिए है, तो नीचे दिए गए टिप्पणी फ़ॉर्म का उपयोग करें।