क्या आपने कभी FINDSTR और Select-String के बारे में सुना है? Select-String एक cmdlet है जिसका उपयोग इनपुट स्ट्रिंग्स और फ़ाइलों में टेक्स्ट और पैटर्न खोजने के लिए किया जाता है। यह लिनक्स पर grep और विंडोज पर FINDSTR के समान है। इस गाइड में, हम देखते हैं कि FINDSTR और Select-String कमांड का क्या और कैसे उपयोग करें विंडोज 11/10 में।
FINDSTR क्या है और FINDSTR का उपयोग कैसे करें
FINDSTR विंडोज पर फ़ाइलों में विशिष्ट टेक्स्ट खोजने के लिए उपयोग की जाने वाली एक कमांड है। फाइंड स्ट्रिंग को संक्षिप्त में FINDSTR कहा गया। इसका उपयोग विशिष्ट टेक्स्ट वाली फ़ाइलों को खोजने के लिए भी किया जाता है। विभिन्न कार्य करने के लिए विभिन्न FINDSTR कमांड हैं। यह पहली बार विंडोज 2000 रिसोर्स किट के साथ qgrep नाम से जारी किया गया था। यह विंडोज में एक अंतर्निहित टूल है और इसकी फ़ाइल .exe फॉर्मेट में उपलब्ध है। FINDSTR यूनिकोड फॉर्मेट में नल बाइट्स जैसे स्पेस को खोजता नहीं है।
कमांड प्रॉम्प्ट या माइक्रोसॉफ्ट द्वारा विकसित अन्य कमांड लाइन इंटरप्रेटर पर findstr कमांड का उपयोग करने के कुछ बुनियादी नियम हैं। वे हैं:
- प्रत्येक FINDSTR कमांड में एक स्ट्रिंग उसके बाद एक फ़ाइल नाम होना चाहिए।
- आप FINDSTR कमांड में लिटरल कैरेक्टर और मेटा-कैरेक्टर का उपयोग कर सकते हैं। लिटरल कैरेक्टर का सिंटैक्स में कोई विशेष अर्थ नहीं होता। अक्षर और संख्याओं को लिटरल कैरेक्टर कहा जाता है। मेटा-कैरेक्टर वे प्रतीक हैं जिनका प्रत्येक के लिए विशिष्ट अर्थ होता है। निम्नलिखित सिंटैक्स में स्वीकृत मेटा-कैरेक्टर और उनके अर्थ हैं।
मेटा-कैरेक्टर |
मान |
|---|---|
. |
वाइल्डकार्ड - कोई भी कैरेक्टर |
* |
दोहराएं - पिछले कैरेक्टर या क्लास की शून्य या अधिक घटनाएं। |
^ |
शुरुआती लाइन स्थिति - लाइन की शुरुआत। |
$ |
अंतिम लाइन स्थिति - लाइन का अंत। |
[क्लास] |
कैरेक्टर क्लास - एक सेट में कोई एक कैरेक्टर। |
[^क्लास] |
उल्टा क्लास - एक सेट में नहीं कोई एक कैरेक्टर। |
[x-y] |
रेंज - निर्दिष्ट रेंज के भीतर कोई भी कैरेक्टर। |
\x |
एस्केप - मेटा-कैरेक्टर का शाब्दिक उपयोग। |
\<स्ट्रिंग |
शुरुआती शब्द स्थिति - शब्द की शुरुआत। |
स्ट्रिंग\> |
अंतिम शब्द स्थिति - शब्द का अंत। |
- जब आप कई स्ट्रिंग्स खोजना चाहते हैं तो खोज मानदंड के साथ एक टेक्स्ट फ़ाइल बनाएं प्रत्येक लाइन पर अलग से।
/cसिंटैक्स को छोड़कर एक ही कमांड में कई स्ट्रिंग्स खोजने के लिए स्ट्रिंग्स के बीच स्पेस का उपयोग करें।
findstr सिंटैक्स में पैरामीटर और उनका अर्थ
पैरामीटर |
विवरण |
|---|---|
/b |
टेक्स्ट पैटर्न से मेल खाता है यदि यह लाइन की शुरुआत में है। |
/e |
टेक्स्ट पैटर्न से मेल खाता है यदि यह लाइन के अंत में है। |
/l |
खोज स्ट्रिंग्स को शाब्दिक रूप से प्रोसेस करता है। |
/r |
खोज स्ट्रिंग्स को नियमित अभिव्यक्ति के रूप में प्रोसेस करता है। यह डिफ़ॉल्ट सेटिंग है। |
/s |
वर्तमान डायरेक्टरी और सभी सबडायरेक्टरी को खोजता है। |
/i |
स्ट्रिंग खोजते समय कैरेक्टर के केस को नजरअंदाज करता है। |
/x |
सटीक रूप से मेल खाने वाली लाइन्स प्रिंट करता है। |
/v |
केवल उन लाइन्स को प्रिंट करता है जिनमें मेल नहीं है। |
/n |
मेल खाने वाली प्रत्येक लाइन का लाइन नंबर प्रिंट करता है। |
/m |
यदि फ़ाइल में मेल है तो केवल फ़ाइल नाम प्रिंट करता है। |
/o |
प्रत्येक मेल खाने वाली लाइन से पहले कैरेक्टर ऑफसेट प्रिंट करता है। |
/p |
नॉन-प्रिंटेबल कैरेक्टर वाली फ़ाइलों को छोड़ देता है। |
/off[line] |
ऑफ़लाइन एट्रिब्यूट सेट वाली फ़ाइलों को नहीं छोड़ता। |
/f:<फ़ाइल> |
निर्दिष्ट फ़ाइल से फ़ाइल सूची प्राप्त करता है। |
/c:<स्ट्रिंग> |
निर्दिष्ट टेक्स्ट को शाब्दिक खोज स्ट्रिंग के रूप में उपयोग करता है। |
/g:<फ़ाइल> |
निर्दिष्ट फ़ाइल से खोज स्ट्रिंग्स प्राप्त करता है। |
/d:<डरलिस्ट> |
निर्दिष्ट डायरेक्टरी सूची खोजता है। प्रत्येक डायरेक्टरी को सेमीकॉलन (;) से अलग किया जाना चाहिए, उदाहरण के लिए |
/a:<कलरएट्रिब्यूट> |
दो हेक्साडेसिमल अंकों के साथ कलर एट्रिब्यूट निर्दिष्ट करता है। अतिरिक्त जानकारी के लिए |
<स्ट्रिंग> |
फ़ाइलनाम में खोजने के लिए टेक्स्ट निर्दिष्ट करता है। आवश्यक। |
<स्पैन ">[\<ड्राइव>:][<पथ>]<फ़ाइलनाम>[…] |
खोजने के लिए स्थान और फ़ाइल या फ़ाइलें निर्दिष्ट करता है। कम से कम एक फ़ाइल नाम आवश्यक है। |
/? |
कमांड प्रॉम्प्ट पर सहायता प्रदर्शित करता है। |
findstr कमांड का उपयोग
1] फ़ाइल x.y में माइक्रोसॉफ्ट या विंडोज शब्द खोजने के लिए, आपको उपयोग करना चाहिए:
findstr माइक्रोसॉफ्ट विंडोज x.y
2] फ़ाइल x.y में "माइक्रोसॉफ्ट विंडोज" शब्द खोजने के लिए, आपको उपयोग करना चाहिए:
findstr /c:"माइक्रोसॉफ्ट विंडोज" x.y
उपरोक्त कमांड में /c का उपयोग फ़ाइल में निर्दिष्ट टेक्स्ट "माइक्रोसॉफ्ट विंडोज" खोजने के लिए किया जाता है।
3] यदि आप टेक्स्ट फ़ाइल twc.txt में बड़े M के साथ Microsoft शब्द की घटनाएं ढूंढना चाहते हैं, तो आपको उपयोग करना चाहिए:
findstr Microsoft twc.txt
4] यदि आप किसी डायरेक्टरी और उसकी सब-डायरेक्टरी में केस टाइप को महत्व दिए बिना Microsoft विशिष्ट शब्द खोजना चाहते हैं, तो उपयोग करें:
findstr /s /i Microsoft *.*
उपरोक्त सिंटैक्स में, /s का उपयोग वर्तमान डायरेक्टरी और उसकी सब-डायरेक्टरी खोजने के लिए किया जाता है। /i का उपयोग स्ट्रिंग Microsoft में केस टाइप (बड़ा M) को नजरअंदाज करने के लिए किया जाता है।
5] यदि आप उन लाइनों को ढूंढना चाहते हैं जो To से शुरू होती हैं जिनसे पहले कई स्पेस हैं और जहां स्ट्रिंग्स हुईं वहां लाइन नंबर प्रदर्शित करना चाहते हैं, तो उपयोग करें:
findstr /b /n /r /c:^ *To *.bas
6] यदि आप कई फ़ाइलों में कई स्ट्रिंग्स खोजना चाहते हैं जिनमें खोज मानदंड stringlist.txt में और फ़ाइल सूची filelist.txt में है और आप परिणामों को परिणाम.out फ़ाइल में संग्रहीत देखना चाहते हैं, तो उपयोग करें:
findstr /g:stringlist.txt /f:filelist.txt > results.out
7] यदि आप किसी विशेष डायरेक्टरी और उसकी सब-डायरेक्टरी में thewindowsclub शब्द वाली फ़ाइलें ढूंढना चाहते हैं, तो उपयोग करें:
findstr /s /i /m \<thewindowsclub\> *.*
8] यदि आप thewindowsclub और अन्य शब्द ढूंढना चाहते हैं जो the से शुरू होते हैं जैसे thesis, thermometer, आदि, तो उपयोग करें:
findstr /s /i /m \<the.* *.*
ये वे तरीके हैं जिनसे आप कमांड-लाइन इंटरप्रेटर जैसे कमांड प्रॉम्प्ट आदि में findstr कमांड का उपयोग कर सकते हैं। आपको findstr कमांड नियमित रूप से लिखने और उपयोग करने के लिए हर पैरामीटर और उसके कार्य के साथ-साथ मेटा-कैरेक्टर और उनके अर्थ को समझना होगा।
Select-String क्या है और इसके पैरामीटर
कल्पना करें कि आप पावरशेल में कोड के बड़े हिस्से लिख रहे हैं और आप उस पावरशेल फ़ाइल में कुछ स्ट्रिंग्स और टेक्स्ट का ट्रैक खो चुके हैं। आपको हजारों स्ट्रिंग्स और शब्दों के भीतर कई हजार लाइनों कोड में उसे ढूंढना होगा। वहां Select-String कमांड आता है जो आपको उन पावरशेल इनपुट फ़ाइलों में स्ट्रिंग्स और टेक्स्ट खोजने देता है। यह लिनक्स पर grep के समान है।
Select-String एक cmdlet है जिसका उपयोग इनपुट स्ट्रिंग्स और फ़ाइलों में टेक्स्ट और पैटर्न खोजने के लिए किया जाता है। यह लिनक्स पर grep और विंडोज पर FINDSTR के समान है। जब Select-String का उपयोग कुछ टेक्स्ट खोजने के लिए किया जाता है, तो यह प्रत्येक लाइन में पहला मेल ढूंढता है और फ़ाइल नाम, लाइन नंबर, और पूरी लाइन प्रदर्शित करता है जहां मेल हुआ। इसका उपयोग प्रति लाइन कई मेल ढूंढने या मेल से पहले या बाद का टेक्स्ट प्रदर्शित करने, या बूलियन अभिव्यक्तियों जैसे ट्रू या फॉल्स में परिणाम प्राप्त करने के लिए किया जा सकता है। आप इसका उपयोग आपके द्वारा कमांड में उपयोग किए गए अभिव्यक्ति के मेल को छोड़कर सभी टेक्स्ट प्रदर्शित करने के लिए भी कर सकते हैं। FINDSTR में आपके द्वारा उपयोग किए जाने वाले वाइल्डकार्ड्स का उपयोग Select-String में भी किया जा सकता है। साथ ही, Select-String ASCII, यूनिकोड आदि जैसे विभिन्न फ़ाइल एन्कोडिंग के साथ काम करता है। यह फ़ाइल एन्कोडिंग निर्धारित करने के लिए बाइट-ऑर्डर-मार्क (BOM) का उपयोग करता है। यदि फ़ाइल में BOM गायब है, तो Select-String फ़ाइल को UTF8 मान लेगा।
Select-String के पैरामीटर
माइक्रोसॉफ्ट ने नीचे दिए गए पैरामीटर्स की कल्पना और विकास किया है जिनका उपयोग सिंटैक्स में किया जाएगा।
-AllMatches
इसका उपयोग लाइन में सभी मेल खोजने के लिए किया जाता है, जो Select-String सामान्य रूप से लाइन में पहले मेल के विपरीत करता है।
-CaseSensitive
यह दर्शाता है कि मेल केस-सेंसिटिव है। डिफ़ॉल्ट रूप से, Select-String केस-सेंसिटिव नहीं है।
-Context
इसका उपयोग आपके द्वारा दर्ज की गई निर्दिष्ट संख्या में लाइनों को मेल की लाइन से पहले और बाद में कैप्चर करने के लिए किया जाता है। यदि आप 1 दर्ज करते हैं, तो यह मेल से पहले और बाद में एक लाइन कैप्चर करता है।
-Culture
कोडिंग में ऑर्डिनल, इनवेरिएंट आदि जैसी कुछ संस्कृतियां हैं। इस पैरामीटर का उपयोग सिंटैक्स में संस्कृति निर्दिष्ट करने के लिए किया जाता है।
-Encoding
इसका उपयोग फ़ाइलों में टेक्स्ट के एन्कोडिंग फॉर्मेट को निर्दिष्ट करने के लिए किया जाता है जैसे ASCII, UTF8, UTF7, यूनिकोड, आदि।
-Exclude
इस पैरामीटर का उपयोग फ़ाइल में कुछ टेक्स्ट को बाहर करने के लिए किया जाता है।
-Include
इस पैरामीटर का उपयोग फ़ाइल में कुछ टेक्स्ट शामिल करने के लिए किया जाता है।
-InputObject
इसका उपयोग खोजे जाने वाले टेक्स्ट को निर्दिष्ट करने के लिए किया जाता है।
-List
इसका उपयोग टेक्स्ट से मेल खाने वाली फ़ाइलों की सूची प्राप्त करने के लिए किया जाता है।
-LiteralPath
इसका उपयोग खोज के लिए पथ निर्दिष्ट करने के लिए किया जाता है।
-NoEmphasis
आमतौर पर, Select-String फ़ाइल में मेल को हाइलाइट करता है। इस पैरामीटर का उपयोग हाइलाइटिंग से बचने के लिए किया जाता है।
-NotMatch
इसका उपयोग उस टेक्स्ट को ढूंढने के लिए किया जाता है जो निर्दिष्ट पैटर्न से मेल नहीं खाता।
-Path
इसका उपयोग वाइल्डकार्ड्स के उपयोग के साथ खोजे जाने वाले पथ को निर्दिष्ट करने के लिए किया जाता है।
-Pattern
पैरामीटर का उपयोग प्रत्येक लाइन में पैटर्न के रूप में मेल खोजने के लिए किया जाता है।
-Quiet
इस पैरामीटर का उपयोग ट्रू या फॉल्स जैसे बूलियन मानों में आउटपुट प्राप्त करने के लिए किया जाता है।
-Raw
इसका उपयोग केवल मेल खाने वाली ऑब्जेक्ट्स देखने के लिए किया जाता है न कि मैच इन्फो।
-SimpleMatch
पैरामीटर का उपयोग नियमित अभिव्यक्ति मेल के बजाय एक साधारण मेल निर्दिष्ट करने के लिए किया जाता है।
FINDSTR और Select-String के बीच अंतर
FINDSTR एक प्री-पावरशेल युग की निष्पादन योग्य फ़ाइल है जिसका उपयोग फ़ाइलों में टेक्स्ट और स्ट्रिंग्स खोजने के लिए किया जाता है। Select-String एक पावरशेल cmdlet है जिसका उपयोग फ़ाइलों में टेक्स्ट और पैटर्न खोजने के लिए किया जाता है। FINDSTR की तुलना में, Select-String अधिक शक्तिशाली और जटिल cmdlet है जो मेल के बारे में बहुत सारी जानकारी प्रदर्शित करता है।
grep का पावरशेल समकक्ष क्या है?
Select-String विंडोज पर उपलब्ध grep का पावरशेल समकक्ष है। यह उसी तरह काम करता है जैसे grep करता है और यह सिंटैक्स में हमारे द्वारा उपयोग किए गए पैरामीटर्स के अनुसार मेल के बारे में विस्तृत जानकारी देता है।
क्या FINDSTR वर्ड फ़ाइलों पर काम करता है?
हां, FINDSTR वर्ड फ़ाइलों पर काम करता है। लेकिन यह मेल नहीं ढूंढ पाता भले ही आपके द्वारा दर्ज स्ट्रिंग्स फ़ाइल में हों। यह .doc फॉर्मेट में बाइनरी फ़ाइलों में परिणाम दे सकता है लेकिन कुछ अज्ञात तकनीकी कारणों से .docx फॉर्मेट में नहीं।
संबंधित पढ़ें: विंडोज में पावरशेल संस्करण कैसे जांचें।