වින්ඩෝස් 7 සඳහා ග්‍රෙප් සමානද?


251

වින්ඩෝස් 7 ට සමාන grep විධාන විමසුමක් තිබේද? එනම්, විධානයක ප්‍රති results ල පෙරීමට මට අවශ්‍යය:

බෑෂ් භාවිතය:

ls | grep root

එය වින්ඩෝස් විධාන විමසුමෙන් කුමක් වනු ඇත්ද?


9
ms-dos විධාන විමසුමට පටලවා නොගන්න. + වින්ඩෝස් සඳහා සොයාගැනීම් සහ සොයාගැනීම් සහ ග්‍රෙප් භාවිතා කිරීම .. ඉක්මන් සෙවුමකින් පහසුවෙන් සොයාගත හැකිය. ලිනක්ස් සහ කවුළු වල සමාන විධාන වගු පවා ඇත. එසේම ඔබ bash උදාහරණය bash සඳහා පවා විශේෂිත නොවේ .. මම හිතන්නේ, * nix OS.
barlop

Answers:


292

Findstr ඔබට අවශ්‍ය දේ වගේ. මම එය සෑම විටම වින්ඩෝස් වේදිකාවේ දළ වශයෙන් සමාන වේ.

පයිප්ප සමඟ තවත් උදාහරණයක් :

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

ඔව්, මම සොයන දේ එය බව පෙනේ. බොහෝ විට සීමාවන් ඇති බව මට වැටහේ. මම එය උත්සාහ කර බලන්නම්.
chrisjlee

19
ඇයි ඔවුන්ට එය ග්‍රෙප් ලෙස හැඳින්විය නොහැක්කේ!
වික්ටර් ග්‍රාසි

6
IctVictorGrazi ඔවුන් මුලින් කළේ ඇත්ත වශයෙන්ම, මෙම ලිපිය බලන්න . එය මුලින් qgrep ලෙස නම් කරන ලද නමුත් පසුව එය නම් කරන ලදී.
සිට්රැක්ස්

4
මෙහි ඇති විශාලතම ගැටළුව findstrවන්නේ රීජෙක්ස් රටාවට විකල්ප අඩංගු නොවීමයි.
වුල්ෆ්

2
මොනවාද කරන්නේ? /Rහා /Cමෙහි පෙනී සිටින්නේ?
මොනිකා සඳහා විප්ලවය

45

හැකියාවන් කිහිපයක් තිබේ:

  • යුනික්ස් විධානයක වරායක් භාවිතා කරන්න grep. තේරීම් කිහිපයක් තිබේ. ක්ෂමා කරන්නෙකු සඳහන් වේ GNUWin32 , cygwin , සහ unxutils . එතරම් ප්‍රසිද්ධ නැති නමුත් යම් ආකාරයකින් වඩා හොඳ වන්නේ යුනික්ස් පාදක කරගත් යෙදුම් සඳහා වන උප පද්ධතිය තුළ ක්‍රියාත්මක වන SFUA උපයෝගිතා මෙවලම් කට්ටලයේ ඇති මෙවලම් වන අතර එය වින්ඩෝස් 7 අල්ටිමේට් සංස්කරණය සහ වින්ඩෝස් සර්වර් 2008 ආර් 2 සමඟ කොටුව තුළට පැමිණේ. (Windows XP සඳහා, එක් කළ හැකි බාගත කර ස්ථාපනය යුනික්ස් අනුවාදය 3.5 සඳහා සේවා .) මෙම මෙවලම් කට්ටලය සිට, විධාන රේඛාව TUI මෙවලම් ඉතා විශාල ප්රමාණයක් ඇති හා එම Korn හා C ෂෙල් වෙඩි හරහා කිරීමට හාmvduperlawk. එය x86-64 සහ IA64 රසයන් මෙන්ම x86-32 යන දෙකින්ම පැමිණේ. cygwin1.dllවින් 32 ට වඩා වැඩියෙන් ඉමියුලේටර් ඩීඑල්එල් (වැනි ) සමඟ නොව වින්ඩෝස් හි ස්වදේශීය නිසි පොසික්ස් පරිසරයේ වැඩසටහන් ක්‍රියාත්මක වේ . ඔව්, මෙවලම් කට්ටලය grepමෙන්ම තවත් 300 ක් පමණ ඇත.
  • භාවිතය බොහෝ දේශීය Win32 එක් grepජනතාව ලියා පළ කරන බව විධාන. නිදසුනක් ලෙස ටිම් චාරොන්ට නවීකරණය කරන ලද GNU grep හි Win32 අනුවාදයක් ඇත . එහි ද PowerGREP , Bare grep , grepWin , AstroGrep , සහ dnGrep මේ සියලු චිත්රක වැඩසටහන් නොවේ TUI වැඩසටහන් සිටින නමුත්,.
  • සැපයූ findසහ භාවිතා කරන්න findstr. grepනිත්‍ය ප්‍රකාශන හැකියාව මෙන් සින්ටැක්ස් සටහනට වඩා වෙනස් වේ .

සිග්වින් වින් 7 හි මා වෙනුවෙන් හොඳින් වැඩ කළේය. මට grep අවශ්‍ය වූ අතර GnuWin32 grep මා වෙනුවෙන් වැඩ කළේ නැත.
කොසුච්

ඔබ මා sua සී perl බසට ලං බලන්න එපා ලියන්න: \ Windows \ sua> හිස් තීරුවෙහි perl බසට ලං * / s / ආ කල ගොනුව හමු නොවීය හා sua මම උදා ඇ ශෙලය / බින් එය දකින්නේ නැහැ
barlop

SFUA යම් ආකාරයකින් වඩා හොඳ බව ඔබ ලියයි. කුමන ආකාරවලින්ද?
බාර්ලොප්

Oz කොසුච් එය ක්‍රියාත්මක නොවූ ආකාරය සඳහන් නොකළහොත් ඔබේ අදහස ප්‍රයෝජනවත් නොවේ
බාර්ලොප්

20

පවර්ෂෙල් විධාන අවසර දී ඇත්නම් , භාවිතා කරන්න

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

හෝ කෙටි

PS C:\> ls | sls root

අන්වර්ථය slsඅර්ථ දැක්වෙන්නේ පවර්ෂෙල් අනුවාදය 3.0 සමඟ පමණක් බව මතක තබා ගන්න . අඩු ටයිප් කිරීම සඳහා ඔබට අන්වර්ථයක් එක් කළ හැකිය:

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

පවර්ෂෙල් විධානය cmd වෙතින් කෙලින්ම ක්‍රියාත්මක කිරීමට, භාවිතා කරන්න

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

2
ග්‍රෙප්, පවර්ෂෙල් ක්‍රමය. commary.net/2014/11/10/grep-the-powershell-way
චාල්ස් බර්ජ්

18

ඔබ එම්එස්-ඩොස් ලියූ මුල් සංශෝධනයේ FINDඇත්තේ මා දන්නා තරමින් පමණි. නමුත් එය තවදුරටත් භාවිතා නොකරන පුරාණ මෙහෙයුම් පද්ධතියකි.

වින්ඩෝස් NT වල කමාන්ඩ් ප්රොම්ප්ට් (උදා: Win2K සහ XP සහ පසුව, ඒ නිසා උදා win7, win10 දිනා), ඔබ භාවිතා කළ හැකිය findසහ findstrඔබ බාගත නම් GnuWin32 පසුවgrep

මූලික වෙනස්කම් වන්නේ findstr හට නිත්‍ය ප්‍රකාශන සහය ඇත. ග්‍රෙප් නිත්‍ය ප්‍රකාශන සඳහා හොඳම සහය දක්වයි.

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

find /?සහ findstr /?ස්විචයන් කරන්නේ කුමක්ද යන්න ඔබට පෙන්වයි.

Gnuwin32 හි "පැකේජ" ඇත. ඔබ GnuWin32 බාගත කරන්නේ නම්, මම ඔබට හුරුපුරුදු මූලික ප්‍රයෝජනවත් උපයෝගීතා පොකුරක් සඳහා coreutils පැකේජය යෝජනා කරමි, නමුත් grep එය එහි පැකේජයක් නොවේ.

එකතු කරන ලදි

අවසන් වරට මා පරීක්ෂා කළ GnuWin32 ගේ ග්‍රෙප් පැරණි ය. සිග්වින්ගේ ග්‍රහණය යාවත්කාලීන ය. * නික්ස් විධානවල වින්ඩෝස් පෝට් වලට වඩා බොහෝ අය අතථ්‍ය යන්ත්‍ර භාවිතා කරන බව මතක තබා ගන්න.


9

ඔබ භාවිතා grepකිරීමට කැමති නම්, UnxUtilsfindstr හි තනි .exeගොනු අනුවාදයක් ඇත , එබැවින් එය අතේ ගෙන යා හැකි අතර එය ස්ථාපනය කිරීමට අවශ්‍ය නැත, හෝ සිග්වින් වැනි දෙයක් භාවිතා කරන්න.


මෙය සිත්ගන්නා සුළු නමුත් එම මෙවලම ස්ථාපනය කිරීම අවශ්‍ය වේ.
ක්‍රිස්ලී

3
H ක්‍රිස්: ස්ථාපනයක් නොමැත. ඒක තියෙන්නේ .zipගොනුවේ .exeගොනු. එකම කුඩා අවාසිය නම් අනුවාදයන් තරමක් පැරණි වීමයි.
පැරඩ්‍රොයිඩ්

6
වයසට යාමේ අවාසිය කුමක්ද? මෘදුකාංග පැරණි විය හැකිද? සියලුම නැවුම් බයිට්.
පරිශීලකයා නොදන්නා

3
GnuWin32 grepවින්ඩෝස් සඳහා ද සපයයි : gnuwin32.sourceforge.net/packages/grep.htm
LiuYan 刘 研

3
eruserunknown හොඳයි, නිදසුනක් ලෙස, unxutils sed විධානය පැරණි වන අතර උපුටා දැක්වීම නියම කිරීමට \ d උදා. d d22 ට සහය නොදක්වයි. පැරණි wget විසින් නව එකක් කැමති පිටුවක් බාගත නොකරනු ඇති අතර, ඔබ සහාය ඉල්ලුවොත් සමහර ගැටළු විසඳිය හැකි නවතම එක ලබා ගැනීමට ඔවුන් ඉල්ලා සිටිය හැකිය. වර්තමාන
පරණ ග්‍රෙප්

3

ඔබට ස්ථාපනය කිරීමට උත්සාහ කළ හැකිය වින්ඩෝස් හි චොකලට් අතර, ඒ හරහා Gow මෙවලම ස්ථාපනය කරන්න . මෙය ඔබට grepවින්ඩෝස් මත ලබා දෙනු ඇත .

Gowවින්ඩෝස් හි GNU වෙනුවෙන් පෙනී සිටින්න. එය වින්ඩෝස් හි යුනික්ස් විධාන රේඛා උපයෝගිතා සපයයි.


1
එය ඇසුරුම් කළමණාකරුවෙකි. දෘශ්‍ය ස්ටුඩියෝ සඳහා පැකේජ කළමණාකරුවෙකු වන නුජෙට් වෙතින් එය පදනම් වී ඇති අතර එය නූගට් (චිකන් නූගට් මෙන්) මෙන් පෙනේ, එබැවින් ඔහු සිතුවේ ඔහු "විහිලු" හෝ "දක්ෂ" යැයි කියා ඇමතුම ඔහුගේ වැඩසටහන චොකලට් නුජෙට්. ඔහු සමඟ සම්මුඛ සාකච්ඡාවක් පැවැත්වූ පෝඩ්කාස්ට් එකක එය මට ඇසුණි. Gow ස්වාධීනව බාගත කළ හැකිය
barlop

1
මම ගෝව්ට අලුත් ය, දින කිහිපයක භාවිතයෙන් පසු මට එය බොහෝ සෙයින් කැමති බව මට සාක්ෂි දිය හැකිය - එය මා කලින් භාවිතා කළ යුනික්ස් උපයෝගිතා වල සියලුම පැරණි වරායන්ට වඩා හොඳය.
රදීම් සර්නෙජ්

AdRadimCernej ඔබේ අදහස වඩා හොඳ යැයි ඔබ සිතන ආකාරය සඳහන් නොකරන්නේ නම් එය ප්‍රයෝජනවත් නොවේ .
බාර්ලොප්

@barlop: මම මගේ ජනවාරි -2016 ප්‍රකාශය ලියා ඇති බැවින් මම ක්‍රමයෙන් සහ සම්පූර්ණයෙන්ම ගෝව් වෙත මාරු වීමි. මෙතෙක් කිසිදු දෝෂයක් නොමැත, එයට මට අවශ්‍ය / භාවිතා කළ හැකි සියලුම උපයෝගීතා ඇත, මාර්ගය මයික්‍රොසොෆ්ට් ආකෘතියෙන් ප්‍රතිදානය වේ (වෙනත් වැඩසටහන් වලට පිටපත් කිරීම / ඇලවීම පහසු කරයි). Gow යනු ආක්‍රමණශීලී නොවන (ස්ථාපනය කිරීමට සහ ඉවත් කිරීමට පහසුය) ඔබ එය පරීක්‍ෂා කර බලන ලෙස තරයේ නිර්දේශ කරමි.
රදීම් සර්නෙජ්

3

මම හයිබ්‍රිඩ් බැච් / ජේස්ක්‍රිප්ට් කේතය භාවිතා කරමින් ග්‍රෙප් සඳහා වින්ඩෝස් විකල්පයක් ලිවීය. මා මෙය ලිව්වේ GNU Win32 grep port එකෙන් ගැලවීමේ චරිත ලබා ගැනීම සැබෑ වේදනාවක් වූ බැවිනි. මෙම අනුවාදය වින්ඩෝස් හි GNU අනුවාදය වැඩ කිරීමට ඔබට අවශ්‍ය වන්නේ කෙසේද යන්නට වඩා බොහෝ සෙයින් ක්‍රියා කරයි:

@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

බෑෂ් භාවිතය

$ ls | grep root

Cmd භාවිතය

> dir /b | findstr root

එහිදී /bසඳහා නැවතුම් ෙපොළවල් ආදි සියලුම ෙතොරතුරු නාමාවලි සහ ගොනු ලැයිස්තුවක් වේ


2
මෙය තවත් පිළිතුරක් අනුපිටපත් කරන අතර නව අන්තර්ගතයක් එක් නොකරයි. ඔබට ඇත්ත වශයෙන්ම අළුත් යමක් දායක නොවන්නේ නම් කරුණාකර පිළිතුරක් පළ නොකරන්න.
ඩේවිඩ් පොස්ටිල්

Av ඩේවිඩ් පොස්ටිල්: මෙය "ටීඑල්; ඩීආර්" භාවිතා කරන්නන් සඳහා වේගවත් විසඳුමකි (මා වැනි)
ව්ලැඩ්ක්‍රස්

අළුත් කිසිවක් දායක නොවන පිළිතුරක් එක් කිරීම නිදහසට කරුණක් නොවේ. ඕනෑම අවස්ථාවක පිළිගත් පිළිතුර සෑම විටම පළමුව දිස්වනු ඇති බැවින් එය ඔබට පෙර කියවනු ලැබේ.
ඩේවිඩ් පොස්ටිල්

@DavidPostill, කමක් නෑ, නමුත් පිළිගත් පිළිතුර බහු අධික සහ සීමා නො කෙරුනු යතුරු /B, /Rහා /Cවිශ්රාම වැටුප් මගේ පිළිතුර ලබා දෙන අතර, ගැන අහන්න නැහැ හරියටම සමාන
vladkras

මෙම /bවන බවට පත් කිරීම dirලෙස ප්රතිදානය එකම lsප්රතිදාන. ඔබ එය පරීක්ෂා කළහොත් ඔබට වෙනස පෙනෙනු ඇත. එබැවින් එය හරියටම සමාන නොවේ.
ඩේවිඩ් පොස්ටිල්

1

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]

0

grepමෙම මෙවලම UnxUtils බාගත කිරීමෙන් ඔබට තවමත් ඔබේ හුරුපුරුදු සහ වෙනත් ලිනක්ස් විධාන භාවිතා කළ හැකි අතර එය ඔබේ PATHපරිසර විචල්‍යයට ස්ථානය එක් කරන්න


unxutils grep ඔබට ලබා ගත හැකි තරම් ප්‍රමාද නොවේ .. unx grep 2.4.2නමුත් gnuwin32 ට පසු එකක් තිබේ 2.5.4
barlop

0

කාර්යබහුල පෙට්ටිය- w32 භාවිතා කිරීමට මම යෝජනා කරමි , මන්ද එය ප්‍රමාණයෙන් 500 KB පමණ වන අතර ක්‍රියාශීලීව නඩත්තු වේ.

ඔබේ නඩුවේදී, විධාන විමසුමේදී, එය:

busybox ls | busybox grep root

ඔබට භාවිතා කළ හැකි doskey, විධාන කිරීමට එක් කණ්ඩායමක් ගොනු විසින් විධාන පිවිසුමක් දියත් වගේ:

doskey ls="path\to\busybox.exe" ls $*

doskey grep="path\to\busybox.exe" grep $*

එවිට ඔබට ls | grep rootවිධාන විමසුමේ භාවිතා කළ හැකිය .


එයට ඇන්ඩ්‍රොයිඩ්
බිල්ඩ්

0

grepඔබේ වින්ඩෝස් පරිසරයට සරලම දේ එකතු කිරීමට ඔබට අවශ්‍ය නම් , c:\windows\system32මෙම විධානය භාවිතා කර කුඩා කණ්ඩායම් පිටපතක් වෙත යන්න:

echo findstr %1 > grep.bat

දැන් ඔබට පුළුවන්

dir | grep notepad.exe

එය ඇත්තෙන්ම බියජනක ජරාවක්. එබැවින් lsමෙම ලිපියේ විස්තර කර ඇති පරිදි තවත් කණ්ඩායම් පිටපතක් එක් කරන්න

echo dir %1 > %systemroot%\system32\ls.bat

දැන් දේවල් ටිකක් හුරුපුරුදුයි

ls | grep notepad

HTH


-2
echo findstr %1 %2 %3 %4 %5 > %systemroot%\grep.cmd

එය ඉක්මන් හා අපිරිසිදු සමාන වනු ඇත.

C:\Windows\system32>dir | grep xwiz
C:\Windows\system32>findstr xwiz
2009.06.10  23:03             4.041 xwizard.dtd
2009.07.14  03:39            42.496 xwizard.exe
2009.07.14  03:41           432.640 xwizards.dll

මාර්ගය වන විට, මෙම අමිහිරි පිළිතුරට සුප්‍රසිද්ධ රුසියානු දේව්
vladkras
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.