2009-09-12 4 views

उत्तर

9

मुझे विंडोज 7 और उसके बाद की कार्यक्षमता जैसे जीआरईपी का उपयोग करने का एक और तरीका भी स्थापित करने के लिए कोई अतिरिक्त एप्लिकेशन इंस्टॉल नहीं किया गया है और पुराने सिस्टम पर आप इंस्टॉल पावरहेल का उपयोग कर सकते हैं।

Powershell में, उपयोगकर्ता Where-Object का उपयोग कर सकते हैं, इसमें फीचर का काफी व्यापक सेट है जो जीआरईपी और अधिक की सभी कार्यक्षमता प्रदान करता है।

आशा है कि यह मदद करता है।

0

यदि आप या तो सिगविन या मिंगव स्थापित करते हैं, तो हाँ।

अन्यथा, जहां तक ​​मुझे पता है।

32

Grep for Windows by GnuWin Project (2014-10-02: यह पुरानी हो चुकी है, नीचे टिप्पणी देखें)

+1

यह GnuWin32 grep है।इसे grep के नवीनतम संस्करण में अपडेट नहीं किया गया है। इसके लिए आपको सिग्विन संस्करण प्राप्त करना होगा। नीचे टिप्पणी देखें। केवल 0 उत्तर के लिए – JPaget

+5

-1। – Travis

+0

लेकिन व्यस्त बॉक्स विकास में है ... http://stackoverflow.com/a/22634389/1498669 – Bernhard

176

एक कमांड लाइन है कि एक कमांड प्रॉम्प्ट विंडो में सभी Windows NT स्तरीय ऑपरेटिंग सिस्टम (प्रकार FINDSTR /? के साथ आता है FINDSTR बुलाया उपकरण भी नहीं है अधिक जानकारी के लिए) यह सब कुछ grep का समर्थन नहीं करता है लेकिन यह आपकी आवश्यकताओं के लिए पर्याप्त हो सकता है।

+5

धन्यवाद! यह grep नहीं है, लेकिन मैं अन्य लोगों की मशीनों पर अतिरिक्त सॉफ़्टवेयर स्थापित किए बिना काम करने में सक्षम होना चाहता हूं और इससे मुझे चलेगा। – sage

+23

आप इसे पाइप प्रतीक के साथ भी उपयोग कर सकते हैं, उदा। 'netstat -n | FINDSTR 3389' – harperville

+3

@sage, कुछ रचनात्मकता के साथ, ** findstr ** बिल्कुल grep की तरह काम करता है। इसका संदर्भ लें [विंडोज़ उदाहरण के लिए grep] (http://www.mkyong.com/linux/grep-for-windows-findstr-example/)। – mkyong

31

पावरशेल (विंडोज 7/2008R2 पर मानक के रूप में शामिल, XP/2003/Vista/2008 के लिए वैकल्पिक) जिसमें इस उद्देश्य के लिए select-string cmdlet शामिल है।

+9

जबकि चयन-स्ट्रिंग (उपनाम: एसएलएस) नियमित अभिव्यक्तियों का उपयोग करता है, यह निर्देशिका रिकर्सन जैसी कुछ मूलभूत सुविधाओं का समर्थन नहीं करता है। इसके लिए आपको एकाधिक PowerShell कमांड को गठबंधन करने की आवश्यकता है। "Dir -R -Include * .txt | sls"^My Regex String $ " – yzorg

3

UnxUtils यूनिक्स utilites विंडोज पर चलने वाले का एक बड़ा सेट है। यह ग्रेप, SED, gawk, आदि

+3

UnxUtils को वर्षों तक बनाए रखा नहीं गया है। इसके बजाए GnuWin32 या Cygwin का उपयोग करें। – JPaget

+0

विंडोज़ (gow) पर gnu gnuWin32 से अधिक पूर्ण है: https: //github.com/bmatzelle/gow/wiki/ –

0

के लिए अच्छा है कि आप एक भुगतान के उत्पाद कोई आपत्ति नहीं है, PowerGREP मेरी व्यक्तिगत पसंदीदा है।

0

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

यदि आप मैनुअल श्रम से समय बचाना चाहते हैं तो यह पैसे के लायक है। मुझे लगता है कि आप खरीदने से पहले आप इसे आजमा सकते हैं।

8

Cygwin ग्रेप और अधिक;)

+2

आपको सिगविन grep चलाने के लिए पूरे सिगविन पैकेज को स्थापित करने की आवश्यकता नहीं है। आपको केवल 5 डीएलएल की आवश्यकता है: cygpcre-0.dll, cygpcreposix-0.dll, cygwin1। डीएलएल, cygintl-8.dll, और cyggce_s-1.dll। – JPaget

0

आप नंगे Windows का उपयोग करने के लिए है, तो Powershell विकल्प के अलावा ऊपर वर्णित है, आप VBScript, जो सभ्य रेगुलर एक्सप्रेशन से समर्थन हासिल है उपयोग कर सकते हैं।

एमएस के पास प्रशासकों के लिए उदाहरणों के टन के साथ तकनीक पर एक सभ्य स्क्रिप्टिंग क्षेत्र भी है।

9

मुझे आश्चर्य है कि किसी ने भी FINDSTR का उल्लेख नहीं किया है। मैं कोई grep poweruser नहीं हूँ, लेकिन कुछ मूलभूत regex समर्थन के साथ, findstr और फिल्टर, ststrin फिल्टर करने के लिए मुझे क्या लगता है। विंडोज के साथ जहाज और वह सब। (संपादित करें: ठीक है कोई उल्लेख findstr किया था, यह देर से मुझे लगता है कि है)

+3

"किसी ने भी FINDSTR का उल्लेख नहीं किया है" - "सर्वश्रेष्ठ" उत्तर एक वर्ष पुराना है और FINDSTR का उल्लेख करता है ... – chiccodoro

6

GnuWin32 उल्लेख के लायक है, यह ग्रेप, फ़ाइल, SED, Groff, मांगपत्र, आदि

सहित सभी मानक linux उपकरणों की देशी Win32 संस्करण, प्रदान करता है

और इन उपकरणों के नए संस्करण जारी किए जाने पर यह लगातार अद्यतन होता है।

+0

अब यह चॉकलेट पर उपलब्ध प्रतीत होता है, इसलिए _cinst GnuWin32_ इसे जल्दी से स्थापित करने के लिए काम करता है। –

2

विंडोज़ रेस्किट में "qgrep" नामक एक उपयोगिता है। आपके पास पहले से ही आपके बॉक्स पर हो सकता है। ;-) यह "पूंछ" कमांड के साथ आता है, भगवान का शुक्र है!

0

हालांकि तकनीकी रूप से ग्रेप और न ही कमांड लाइन, दोनों माइक्रोसॉफ्ट विजुअल स्टूडियो और Notepad++ पूर्ण नियमित अभिव्यक्ति समर्थन के साथ फ़ाइलें सुविधा में एक बहुत अच्छा ढूँढें है। मैं खुद को अक्सर उनका उपयोग कर रहा हूं, भले ही मेरे पास कमांड लाइन पर उपलब्ध grep का CygWin संस्करण भी है।

0

बस LikeGrep जावा उपयोगिता का प्रयास करें। यह आपको कई मामलों में मदद कर सकता है। जैसा आप चाहें, यह फ़ाइलों में पाए गए कुछ पाठ को भी प्रतिस्थापित कर सकता है। यह बड़ी फ़ाइलों (8 से 8 जीबी परीक्षण) पर अपने काम की गारंटी देता है

0

जैसा ऊपर बताया गया है, gnuwin32 प्रोजेक्ट में grep का Windows CLI संस्करण है।

यदि आप ग्राफिकल इंटरफ़ेस के साथ कुछ चाहते हैं, तो मैं (ओपन-सोर्स) टूल AstroGrep की अनुशंसा करता हूं।

0

यह कुछ समय हो गया है क्योंकि मैंने उनका उपयोग किया है, लेकिन बोर्लैंड (एम्बरकेडरो अब) में उनके सी/सी ++ कंपाइलर के साथ कमांड लाइन grep शामिल था। कुछ समय के लिए, उन्होंने पंजीकरण के बाद अपने 5.5 संस्करण को free download के रूप में उपलब्ध कराया है।

1

मैं इस धागे में अपना $ 0.02 जोड़ूंगा। dnGREP विंडोज़ एक्सप्लोरर एकीकरण, विंडोज एक्सप्लोरर एकीकरण, पीडीएफ, ज़िप, डीओसी और अन्य सामानों का गुच्छा का समर्थन करता है ...

3

एक उत्कृष्ट और बहुत तेज़ फ़ाइल खोज उपयोगिता, Agent Ransack, नियमित अभिव्यक्ति खोज का समर्थन करता है। यह मुख्य रूप से एक जीयूआई उपयोगिता है, लेकिन एक कमांड लाइन इंटरफ़ेस भी उपलब्ध है।

15

जैसा कि बताया गया है, findstr ठीक काम करता है। उदाहरण:

सी:> डीआईआर | findstr विंडोज

11/06/2013 09:55 PM पर विंडोज

0

सब-इन-वन बिजीबॉक्स शामिल ग्रेप/egrep/SED/awk और कई और अधिक

से इसे पाने:

या तो मुझे पुराने

+3

प्रश्नकर्ता ने तृतीय पक्ष टूल के लिए पूछे जाने पर मुझे डाउनवॉट क्यों प्राप्त करते हैं? – Bernhard

3

विंडोज़ पर मैं फ़ाइल खोज के लिए Far Manager का उपयोग करें। बीएसडी लाइसेंस प्राप्त, कंसोल में काम करता है, टाइपिंग cmdline पैरामीटर पर समय बचाता है। Alt-F7 द्वारा इसका खोज संवाद यहां आ गया है।Alt-F7

0

मेरा सुझाव है PowerGrep

मैं कई साल पहले एक ई-डिस्कवरी परियोजना करना था। मैंने पाया कि fisdstr कुछ सीमाएं था, सबसे विशेष रूप से fisdstr अंततः विफल हो जाएगा

स्क्रिप्ट दर्जन खोज शब्दों/वाक्यांशों के एक जोड़े का उपयोग करके फ़ाइलें के हजारों भर में खोज करने के लिए किया था।

Cygwin के ग्रेप काफी बेहतर काम किया है, यह अक्सर गला घोंटना नहीं था, लेकिन अंत में मैं PowerGrep के लिए गया था क्योंकि ग्राफिकल इंटरफेस यह बहुत आसान है बताने के लिए समय और स्थान पर दुर्घटनाग्रस्त हो गया बनाया है, और भी इसमें संपादित करने के लिए वास्तव में आसान था सभी सशर्त और आउटपुट जो मैं चाहता था। अंत में पावरग्रेप तीनों में से सबसे विश्वसनीय था।

0

हां विंडोज पीसी के लिए केवल एक प्रोग्राम है जिसमें ठोस जीयूआई है और यह मेरे लिए आवश्यक उपयोग है। मैं एक डेवलपर के रूप में काम करता हूं और मेरे पास हर कंप्यूटर पर, पहली चीज XFind प्रोग्राम स्थापित करती है। यह 1 99 7 में बनाया गया है और अब तक संस्करण 1.0 है और अब तक काम करता है और यह सबसे अच्छा है। बार-बार मैं एक ".cs" में कुछ स्ट्रिंग खोज करने के लिए की जरूरत है, " .aspx", ".sct" (विजुअल फॉक्सप्रो प्रपत्र कोड फ़ाइल) या बस "। *" और XFind सभी फाइलों को स्कैन करता है और मुझे फ़ाइलें दिखाने के लिए और एक और बड़ी बात यह है कि आप देख सकते हैं कि फ़ाइल में स्ट्रिंग कहां है। एक्सफिंड में कुछ प्रकार का संपादक भी है। यदि यह बाइनरी फ़ाइल है तो यह आपको स्ट्रिंग को दिखाएगा। इसे आज़माएं और हमेशा के लिए इसका इस्तेमाल करें यदि आप मेरे जैसे डेवलपर हैं।

1

आपने स्पष्ट रूप से कई अलग-अलग सिफारिशें प्राप्त की हैं।
एक नि: शुल्क के लिए मेरे व्यक्तिगत पसंद, 3 पार्टी उपयोगिता है: एजेंट लूटना
Agent Ransack Download
इसके कुछ भ्रामक नाम के बावजूद, यह अच्छी तरह से काम करता है और तरीके से फ़ाइलों को ढूंढना की एक किस्म में इस्तेमाल किया जा सकता।

गुड लक

0

मुझे पता है कि यह थोड़ा पुराने विषय है, लेकिन, यहाँ एक और बात आप कर सकते है। मैं एक डेवलपर वीएम पर काम करता हूं जिसमें इंटरनेट का उपयोग नहीं होता है और काफी सीमित डिस्क स्थान होता है, इसलिए मैंने जावा पर इसका उपयोग किया।

रेगेक्स मैचों को कंसोल पर प्रिंट करने वाले छोटे जावा प्रोग्राम को संकलित करें। आपके सिस्टम पर कहीं जार रखो, यह निष्पादित करने के लिए एक बैच बना सकते हैं और अपने पथ चर करने के लिए फ़ोल्डर जोड़ें:

JGrep.java:

package com.jgrep; 

import java.io.BufferedReader; 
import java.io.FileNotFoundException; 
import java.io.FileReader; 
import java.io.IOException; 
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

public class JGrep { 

    public static void main(String[] args) throws FileNotFoundException, IOException { 
     int printGroup = -1; 
     if (args.length < 2) { 
      System.out.println("Invalid arguments. Usage:"); 
      System.out.println("jgrep [...-MODIFIERS] [PATTERN] [FILENAME]"); 
      System.out.println("Available modifiers:"); 
      System.out.println(" -printGroup   - will print the given group only instead of the whole match. Eg: -printGroup=1"); 
      System.out.println("Current arguments:"); 
      for (int i = 0; i < args.length; i++) { 
       System.out.println("args[" + i + "]=" + args[i]); 
      } 
      return; 
     } 
     Pattern pattern = null; 
     String filename = args[args.length - 1]; 
     String patternArg = args[args.length - 2];   
     pattern = Pattern.compile(patternArg); 

     int argCount = 2; 
     while (args.length - argCount - 1 >= 0) { 
      String arg = args[args.length - argCount - 1]; 
      argCount++; 
      if (arg.startsWith("-printGroup=")) { 
       printGroup = Integer.parseInt(arg.substring("-printGroup=".length())); 
      } 
     } 
     StringBuilder sb = new StringBuilder(); 
     try (BufferedReader br = new BufferedReader(new FileReader(filename))) { 
      sb = new StringBuilder(); 
      String line = br.readLine(); 

      while (line != null) { 
       sb.append(line); 
       sb.append(System.lineSeparator()); 
       line = br.readLine(); 
      } 
     } 
     Matcher matcher = pattern.matcher(sb.toString()); 
     int matchesCount = 0; 
     while (matcher.find()) { 
      if (printGroup > 0) { 
       System.out.println(matcher.group(printGroup)); 
      } else { 
       System.out.println(matcher.group()); 
      } 
      matchesCount++; 
     } 
     System.out.println("----------------------------------------"); 
     System.out.println("File: " + filename); 
     System.out.println("Pattern: " + pattern.pattern()); 
     System.out.println("PrintGroup: " + printGroup); 
     System.out.println("Matches: " + matchesCount); 
    } 
} 

c: \ jgrep \ jgrep.bat (एक साथ jgrep.jar के साथ):

@echo off 
java -cp c:\jgrep\jgrep.jar com.jgrep.JGrep %* 

और जोड़ने c: \ jgrep पथ वातावरण चर के अंत में

अब कहीं से भी jgrep "expression" file.txt पर कॉल करें।

मुझे अपनी अभिव्यक्ति से कुछ विशिष्ट समूहों को मुद्रित करने की आवश्यकता है इसलिए मैंने एक संशोधक जोड़ा और इसे jgrep -printGroup=1 "expression" file.txt जैसा कॉल किया।

संबंधित मुद्दे