सवाल विंडोज 7 के लिए Grep बराबर है?


क्या एक कमांड प्रॉम्प्ट है ग्रेप विंडोज 7 के बराबर है? यही है, मैं एक आदेश के परिणाम फ़िल्टर करना चाहता हूँ:

बैश का उपयोग करें:

ls | grep root

विंडोज कमांड प्रॉम्प्ट से यह क्या होगा?


215
2018-06-22 20:51


मूल


कमांड प्रॉम्प्ट के साथ ms-dos को भ्रमित न करें। + विंडोज़ के लिए खोज और findstr और यहां तक ​​कि grep का उपयोग .. निश्चित रूप से एक त्वरित खोज के साथ आसानी से पाया जाता है। लिनक्स और विंडोज़ में समकक्ष कमांड की सारणी भी हैं। आप भी उदाहरण को बाश करने के लिए विशिष्ट नहीं है .. बस मुझे लगता है, * निक्स ओएस। - barlop


जवाब:


findstr लगता है कि आप क्या चाहते हैं। मैं इसे विंडोज प्लेटफॉर्म पर अनुमानित grep-equal के रूप में हर समय उपयोग करता हूं।

एक और उदाहरण पाइप के साथ:

C:\> dir /B | findstr /R /C:"[mp]"

256
2018-06-22 21:00



हाँ ऐसा लगता है कि मैं क्या देख रहा हूं। मैं समझता हूं कि शायद सीमाएं हैं। मै उसे करने की एक कोशिश तो करूंगा। - chrisjlee
वे इसे grep क्यों नहीं बुला सकते थे! - Victor Grazi
@VictorGrazi वे वास्तव में पहले किया था, देखते हैं यह लेख। इसे मूल रूप से qgrep नाम दिया गया था - लेकिन बाद में इसका नाम बदला गया। - Zitrax
के साथ बड़ी समस्या findstr यह है कि रेगेक्स पैटर्न में विकल्प नहीं हो सकते हैं। - Wolf
सवाल विंडोज 7 के बारे में है, लेकिन विंडोज के अन्य संस्करणों में क्या है findstr डिफ़ॉल्ट रूप से? विंडोज एक्सपी के बाद से? - Peter Mortensen


कई संभावनाएं हैं:

  • यूनिक्स के पोर्ट का उपयोग करें grep आदेश। कई विकल्प हैं। अक्सर उल्लिखित हैं GNUWin32, cygwin, तथा unxutils। कम ज्ञात, लेकिन कुछ तरीकों से बेहतर, उपकरण हैं एसएफयूए उपयोगिता टूलकिट, जो में भागो यूनिक्स आधारित अनुप्रयोगों के लिए सबसिस्टम यह विंडोज 7 अल्टीमेट संस्करण और विंडोज सर्वर 2008 आर 2 के साथ बॉक्स में ठीक है। (विंडोज एक्सपी के लिए, कोई भी कर सकता है डाउनलोड और स्थापित करें यूनिक्स संस्करण 3.5 के लिए सेवाएं।) इस टूलकिट में बड़ी संख्या में कमांड लाइन टीयूआई टूल्स हैं mv तथा du, कॉर्न और सी गोले के माध्यम से, करने के लिए perl तथा awk। यह x86-64 और IA64 स्वादों के साथ-साथ x86-32 दोनों में आता है। कार्यक्रम विंडोज़ के मूल उचित POSIX पर्यावरण में चलते हैं, बजाय एम्यूलेटर डीएलएल (जैसे cygwin1.dll) Win32 पर चीजों को लेयरिंग। और हाँ, टूलकिट है grep, साथ ही कुछ 300 अन्य।
  • कई देशी Win32 में से एक का प्रयोग करें grep आदेश है कि लोगों ने लिखा है और प्रकाशित किया है।  टिम Charron है एक संशोधित जीएनयू grep का एक देशी Win32 संस्करण, उदाहरण के लिए। वे भी हैं PowerGREP, बेयर गेप, grepWin, AstroGrep, तथा dnGrep, हालांकि ये सभी जीयूआई कार्यक्रम टीयूआई कार्यक्रम नहीं हैं।
  • आपूर्ति का प्रयोग करें find तथा findstr  वाक्यविन्यास उस के लिए अलग है grep, नोट, नियमित अभिव्यक्ति क्षमता के रूप में।

41
2018-06-23 13:06



साइगविन ने मुझे विन 7 पर अच्छी तरह से काम किया। मुझे grep की आवश्यकता थी और GnuWin32 grep मेरे लिए काम नहीं किया था। - Kozuch
आप लिखते हैं कि मुझे एसयूए सी में पर्ल नहीं दिख रहा है: \ विंडोज \ SUA> dir perl * / s / b फ़ाइल नहीं मिली और चल रहा है उदा। एसयूए के सी खोल मैं इसे / बिन में नहीं देखता हूं - barlop
आप यह भी लिखते हैं कि एसएफयूए कुछ तरीकों से बेहतर है। किन मायनों में? - barlop
@Kozuch जब तक आप यह नहीं बताते कि यह कैसे काम नहीं करता है, तो आपकी टिप्पणी उपयोगी नहीं है - barlop


अगर शक्ति कोशिका आदेशों की अनुमति है, उपयोग करें

PS C:\> Get-ChildItem | Select-String root

या छोटा

PS C:\> ls | sls root

ध्यान रखें कि उपनाम sls केवल PowerShell संस्करण 3.0 के साथ परिभाषित किया गया है। आप कम टाइपिंग के लिए उपनाम जोड़ सकते हैं:

PS C:\> New-Alias sls Select-String

सीधे cmd से PowerShell कमांड चलाने के लिए, उपयोग करें

C:\>powershell -command "ls | select-string root"

17
2018-01-13 13:16



Grep, पावरहेल रास्ता। communary.net/2014/11/10/grep-the-powershell-way - Charles Burge


आपके शुरुआती संशोधन में आपने एमएस-डॉस लिखा था, केवल यही है FIND, जहाँ तक मुझे पता है। लेकिन यह अब एक प्राचीन ओएस का उपयोग नहीं किया जाता है।

विंडोज एनटी कमांड प्रॉम्प्ट में (उदा। Win2K और XP और बाद में जीतें, तो उदा। Win7, win10), आप इसका उपयोग कर सकते हैं find तथा findstr और यदि आप डाउनलोड करते हैं GnuWin32 फिर grep 

बुनियादी मतभेद यह है कि findstr कुछ है नियमित अभिव्यक्ति समर्थन। Grep नियमित अभिव्यक्तियों का सबसे अच्छा समर्थन करता है।

C:\>dir | find "abc"
C:\>dir | find /i "abc"

find /? तथा findstr /?आपको दिखाता है कि स्विच क्या करते हैं।

Gnuwin32 "पैकेज" है। यदि आप GnuWin32 डाउनलोड करते हैं, तो मैं मूल उपयोगी उपयोगिताओं के समूह के लिए कोरुटिल पैकेज का सुझाव देता हूं, जिनसे आप परिचित होंगे, लेकिन grep उस में नहीं है, यह उसका स्वयं का पैकेज है।

जोड़ा गया

GnuWin32 के grep, पिछली बार मैंने चेक किया, पुराना है। सिगविन का grep अब तक अद्यतित है। यह भी ध्यान रखें कि कई लोग * निक्स कमांड के विंडोज पोर्ट्स के बजाय वर्चुअल मशीन का उपयोग करते हैं।


15
2018-06-22 21:00





यदि आप बल्कि उपयोग करेंगे grep, बजाय findstr, एक भी है .exe में फ़ाइल संस्करण UnxUtils, इसलिए यह पोर्टेबल है और इसे स्थापित करने की कोई आवश्यकता नहीं है, या सिगविन जैसे कुछ का उपयोग करें।


9
2018-06-22 21:07



यह दिलचस्प है लेकिन उस उपकरण को स्थापित करने की आवश्यकता होगी। - chrisjlee
@ क्रिस: कोई स्थापना नहीं है। यह सिर्फ एक है .zip की फाइल .exe फ़ाइलें। एकमात्र छोटा नकारात्मक यह है कि संस्करण थोड़ा पुराना है। - paradroid
बूढ़े होने का नकारात्मक क्या है? क्या सॉफ्टवेयर पुराना हो सकता है? सभी ताजा बाइट्स। - user unknown
GnuWin32 भी प्रदान करता है grep विंडोज के लिए: gnuwin32.sourceforge.net/packages/grep.htm - LiuYan 刘研
@userunknown अच्छी तरह से, उदाहरण के रूप में, unxutils sed कमांड पुराना है और \ d उदा। उद्धरण निर्दिष्ट करने के लिए \ d22। एक पुराना wget शायद एक पृष्ठ डाउनलोड नहीं कर सकता है जो एक नया होगा, और यदि आप समर्थन मांगते हैं तो वे पूछ सकते हैं कि आपको नवीनतम समस्या मिलती है क्योंकि इससे कुछ समस्याएं हल हो सकती हैं। वास्तव में पुराने grep में कोई संदेह नहीं है कि वर्तमान में रेगेक्स समर्थन का स्तर नहीं होगा - barlop


आप स्थापित करने का प्रयास कर सकते हैं chocolatey विंडोज़ पर, और उसके माध्यम से, स्थापित करें Gow उपकरण। यह आपको प्रदान करेगा grep विंडोज़ पर

Gow विंडोज़ पर जीएनयू के लिए खड़े हो जाओ। यह विंडोज पर यूनिक्स कमांड लाइन यूटिलिटीज प्रदान करता है।


3
2017-09-11 05:33



यह एक पैकेज मैनेजर है, जैसे कि एपीटी-गेट लेकिन विंडोज़ के लिए। इसका नाम 'डेवलपर्स' को न्यूजेट के आधार पर आधारित करता है जो विजुअल स्टूडियो के लिए एक पैकेज मैनेजर है, और यह नगेट (चिकन नगेट में) जैसा लगता है, इसलिए उसने सोचा कि वह "मजाकिया" या "चालाक" होगा और कॉल करेगा उनके कार्यक्रम चॉकलेट NuGet। मैंने सुना है कि एक पॉडकास्ट पर जिसने साक्षात्कार किया था। गो भी स्वतंत्र रूप से डाउनलोड किया जा सकता है - barlop
मैं गो के लिए नया हूं, उपयोग के कुछ दिनों के बाद मैं प्रमाणित कर सकता हूं कि मुझे यह बहुत पसंद है - यह यूनिक्स यूटिल के सभी पुराने बंदरगाहों से बेहतर है जिसका मैंने पहले उपयोग किया था। - Radim Cernej
@RadimCernej आपकी टिप्पणी उपयोगी नहीं है जब तक आप बताते हैं किस तरह आपको लगता है कि यह बेहतर है। - barlop
@barlop: चूंकि मैंने अपनी जनवरी-2016 टिप्पणी को धीरे-धीरे लिखा और पूरी तरह से गो को स्विच किया। अब तक कोई भी बग नहीं है, इसमें सभी उपयोगिताएं हैं जिन्हें मुझे उपयोग / उपयोग करने की ज़रूरत है, पथ माइक्रोसॉफ्ट प्रारूप में आउटपुट है (इसे अन्य प्रोग्राम्स में कॉपी / पेस्ट करना आसान बनाता है)। गो गैर-आक्रामक है (स्थापित करने और निकालने में आसान) कि मैं दृढ़ता से अनुशंसा करता हूं कि आप इसे परीक्षण करें। - Radim Cernej


बैश का उपयोग करें

$ ls | grep root

सीएमडी उपयोग करें

> dir /b | findstr root

कहा पे /b के लिए खड़ा है निर्देशिकाओं और फ़ाइलों की सूची हैं


2
2018-05-02 05:47



यह एक और जवाब डुप्लिकेट करता है और कोई नई सामग्री नहीं जोड़ता है। कृपया उत्तर पोस्ट न करें जबतक कि वास्तव में योगदान करने के लिए आपके पास कुछ नया न हो। - DavidPostill♦
@ डेविडपोस्टिल: यह "टीएल; डीआर" उपयोगकर्ताओं (मेरे जैसे) के लिए तेज़ समाधान है - vladkras
यह कोई जवाब जोड़ने का कोई बहाना नहीं है जो कुछ भी नया योगदान नहीं देता है। किसी भी मामले में स्वीकृत उत्तर हमेशा पहले दिखाई देगा, इसलिए यह आपके सामने पढ़ा जाएगा। - DavidPostill♦
@ डेविडपोस्टिल, ध्यान न दें, लेकिन स्वीकृत उत्तर में कई अत्यधिक शामिल हैं और अस्पष्टीकृत चांबियाँ /B, /R तथा /C ओपी ने जवाब नहीं दिया, जबकि मेरा जवाब देता है सटीक बराबर - vladkras
/b बनाना है dir के रूप में उत्पादन ls उत्पादन। यदि आप इसका परीक्षण करते हैं तो आप अंतर देखेंगे। तो यह सटीक समतुल्य नहीं है। - DavidPostill♦


मैंने हाइब्रिड बैच / जेस्क्रिप्ट कोड का उपयोग कर grep के लिए विंडोज विकल्प लिखा था। मैंने इसे लिखा क्योंकि जीएनयू Win32 grep पोर्ट में बचने वाले पात्रों को वास्तविक दर्द था। यह संस्करण विंडोज़ में जीएनयू संस्करण को काम करने के तरीके के बारे में और अधिक काम करता है:

@set @junk=1 /*
@cscript //nologo //E:jscript %~f0 %*
@goto :eof */

var args=WScript.Arguments, argCnt=args.Length, stdin=WScript.StdIn, stdout=WScript.StdOut;
var replaceSingleQuotes=false, printMatchesOnly=false, matchString, flagString, regex, argDx=0;

if(argCnt==0) {
    throw new Error("You must provide search criteria.");
}

flagString=""
if(argCnt>1) {
    for(var bLoop=true; bLoop&&argDx<argCnt-1; argDx++) {
        switch(args(argDx)) {
        case '-t': replaceSingleQuotes=true; break;
        case '-o': printMatchesOnly=true; break;
        case '-g': flagString+="g"; break;
        case '-i': flagString+="i"; break;
        case '-m': flagString+="m"; break;
        default: bLoop=false; break;
        }
    }
}
if(replaceSingleQuotes) {
    matchString=args(argCnt-1).replace("'", '"');
} else {
    matchString=args(argCnt-1);
}

if(printMatchesOnly) {
    while(!stdin.AtEndOfStream) {
        var sLine=stdin.ReadLine();
        if(flagString.Length) regex=new RegExp(matchString, flagString);
        else regex=new RegExp(matchString);
        var m,matches=[],startDx=0;
        while((m=regex.exec(sLine.substr(startDx))) !== null) {
            stdout.WriteLine(m[0]);
            startDx+=m.lastIndex;
        }
    }
} else {
    if(flagString.Length) regex=new RegExp(matchString, flagString);
    else regex=new RegExp(matchString);
    while(!stdin.AtEndOfStream) {
        var sLine=stdin.ReadLine();
        if(regex.test(sLine)) {
            stdout.WriteLine(sLine);
        }
    }

}

आप हमेशा मेरे पर नवीनतम संस्करण पा सकते हैं सार इसके लिए पेज।


2
2018-03-03 11:06





http://www.multireplacer.com

मल्टी रेप्सरर प्रोग्राम तैयार किया गया है ताकि उपयोग करके कई कार्य किए जा सकें कमांड लाइन पैरामीटर। कमांड लाइन उपयोग नीचे देखा गया है:

MultiReplacer [Multi Replacer File] | [Search files] | [Search folders]
[-Subs] [-NoSubs] [-IncPtr=pattern] [-ExcPtr=patterns] [-DestDir=destination]
[-DMAnyTime]
[-DMWithinanhour] [-DMToday] [-DMYesterday] [-DMThisweek] [-DMThismonth]
[-DMThisYear]
[-CDMAfter=date] [-CDMBefore=date] [-MinFileSize=bytes count]
[-MaxFileSize=bytes count]
[-Search=text] [-Case] [-NoCase] [-Regex] [-NoRegex] [-SubMatchText=text]
[-ReplaceText=text]
[-StartSearch] [-StartReplace] [-AutoClose] [-StopAfterMatchThisFile] [-StopAfterMatchAll]
[-ExtractedWordsFile=filename] [-ExtractedLinesFile=filename] [-
ReportFile=filename]

1
2018-02-08 22:15





आप अभी भी अपने परिचित का उपयोग कर सकते हैं grep और इस उपकरण को डाउनलोड करके अन्य लिनक्स कमांड UnxUtils और इसे अपने स्थान में जोड़ें PATH वातावरण विविधता


0
2017-09-03 02:48



unxutils grep उतना देर नहीं है जितना आप प्राप्त कर सकते हैं .. unx grep है 2.4.2 लेकिन gnuwin32 बाद में एक है 2.5.4 - barlop