Jakie są dobre narzędzia grep Dla Windows? [zamknięte]

Jakieś zalecenia dotyczące grep Narzędzia Dla Windows? Najlepiej te, które mogłyby wykorzystać 64-bitowy system operacyjny.

Znam Cygwin, oczywiście, i również znalazłemPowerGREP , ale zastanawiam się, czy są tam jakieś ukryte klejnoty?

 291
Author: Portman , 2008-09-18

28 answers

Bazując na rekomendacjach w komentarzach, zacząłem używać grepWin i jest fantastyczny i darmowy .


(nadal jestem fanem PowerGREP , ale już go nie używam.)

Wiem, że już o tym wspomniałeś, ale PowerGREP jest zajebisty .

Niektóre z moich ulubionych funkcji to:

  • kliknij prawym przyciskiem myszy na folderze, aby uruchomić PowerGREP na nim
  • użyj wyrażeń regularnych lub dosłownego tekstu
  • Określ symbole wieloznaczne dla pliki do włączenia i wykluczenia
  • Search & replace
  • Tryb podglądu jest ładny, ponieważ możesz upewnić się, że zastępujesz to, co zamierzasz.

Teraz zdaję sobie sprawę, że inne narzędzia grepa mogą wykonać wszystkie powyższe czynności. Po prostu PowerGREP pakuje wszystkie funkcje w bardzo łatwy w użyciu GUI.

od tych samych wspaniałych ludzi, którzy przynieśli ci RegexBuddy i z którymi nie mam nic wspólnego poza kochaniem ich rzeczy. (powinno należy zauważyć, że RegexBuddy zawiera podstawową wersję grepa (Dla Windows) i kosztuje dużo mniej niż PowerGREP.)


Dodatkowe rozwiązania

Istniejące komendy Windows

Implementacje poleceń Linuksa w systemie Windows

Narzędzia Grep z graficznym interfejs

Dodatkowe narzędzia Grep

 172
Author: Mark Biek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-10 09:00:02

FINDSTR jest dość potężny, obsługuje wyrażenia regularne i ma zalety bycia już na wszystkich maszynach z systemem Windows.

c:\> FindStr /?

Searches for strings in files.

FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:file]
        [/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]]
        strings [[drive:][path]filename[ ...]]

  /B         Matches pattern if at the beginning of a line.
  /E         Matches pattern if at the end of a line.
  /L         Uses search strings literally.
  /R         Uses search strings as regular expressions.
  /S         Searches for matching files in the current directory and all
             subdirectories.
  /I         Specifies that the search is not to be case-sensitive.
  /X         Prints lines that match exactly.
  /V         Prints only lines that do not contain a match.
  /N         Prints the line number before each line that matches.
  /M         Prints only the filename if a file contains a match.
  /O         Prints character offset before each matching line.
  /P         Skip files with non-printable characters.
  /OFF[LINE] Do not skip files with offline attribute set.
  /A:attr    Specifies color attribute with two hex digits. See "color /?"
  /F:file    Reads file list from the specified file(/ stands for console).
  /C:string  Uses specified string as a literal search string.
  /G:file    Gets search strings from the specified file(/ stands for console).
  /D:dir     Search a semicolon delimited list of directories
  strings    Text to be searched for.
  [drive:][path]filename
             Specifies a file or files to search.

Use spaces to separate multiple search strings unless the argument is prefixed
with /C.  For example, 'FINDSTR "hello there" x.y' searches for "hello" or
"there" in file x.y.  'FINDSTR /C:"hello there" x.y' searches for
"hello there" in file x.y.

Regular expression quick reference:
  .        Wildcard: any character
  *        Repeat: zero or more occurances of previous character or class
  ^        Line position: beginning of line
  $        Line position: end of line
  [class]  Character class: any one character in set
  [^class] Inverse class: any one character not in set
  [x-y]    Range: any characters within the specified range
  \x       Escape: literal use of metacharacter x
  \<xyz    Word position: beginning of word
  xyz\>    Word position: end of word

Przykład użycia: findstr text_to_find * lub do wyszukiwania rekurencyjnego findstr /s text_to_find *

 305
Author: Ray Hayes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-29 23:55:39

GrepWin Free and open source (GPL)

Tutaj wpisz opis obrazkaUżywam grepwina, który został napisany przez jednego z gości tortoisesvn. Działa na Windows...

Http://stefanstools.sourceforge.net/grepWin.html

 103
Author: Shannon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-14 11:31:42

Aktualizacja Lipiec 2013:

Kolejnym narzędziem grep, którego używam cały czas w Windows jest AstroGrep:

AstroGrep

Jego zdolność do pokazania mi czegoś więcej niż tylko Wyszukiwanie liniowe (np. --context=NUM grepa wiersza poleceń) jest nieoceniona.
I to szybko. Bardzo szybko, nawet na starym komputerze z dyskiem nie SSD (wiem, kiedyś robili ten dysk twardy z wirującymi dyskami, zwanymi talerzami , prawda?)

Jest za darmo.
Jest przenośny (proste archiwum zip do rozpakowania).


Oryginalna odpowiedź październik 2008

Gnu Grep jest w porządku

Możesz go pobrać na przykład tutaj: (site ftp )

Wszystkie zwykłe opcje są tutaj.

To, w połączeniu z gawk i xargs (zawiera 'find', Z GnuWin32), i naprawdę możesz skryptować tak, jak byłeś na Unixie!

Zobacz także opcje, których używam do grep rekurencyjnie :

grep --include "*.xxx" -nRHI "my Text to grep" *
 51
Author: VonC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:26:23

Cmdlet PowerShella z Select-String był w porządku w wersji 1.0, ale jest znacznie lepszy dla wersji 2.0 . Posiadanie PowerShell ' a wbudowanego w najnowsze wersje systemu Windows oznacza, że Twoje umiejętności będą zawsze przydatne, bez uprzedniej instalacji czegoś.

Dodano nowe parametry do Select-String : Select-String cmdlet obsługuje teraz nowe parametry, takie jak:

  • - Context: pozwala na wyświetlenie linii przed i po linii dopasowania
  • - AllMatches: co pozwala zobaczyć wszystkie mecze w linii (wcześniej można było zobaczyć tylko pierwszy mecz w linii)
  • - NotMatch: odpowiednik grep-v o
  • - Encoding: aby określić kodowanie znaków

Uważam, że wskazane jest utworzenie funkcji gcir dla Get-ChildItem -Recurse ., ze sprytem do poprawnego przekazywania parametrów i aliasem ss dla Select-String. Więc piszesz:

Gcir *.txt / ss foo

 30
Author: Jay Bazuzi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-12 03:31:32

Może nie do końca należy do kategorii 'grep' , ale nie poradziłbym sobie w systemie Windows bez narzędzia o nazwie AgentRansack . Jest to oparte na gui narzędzie "Znajdź w plikach" z obsługą regex. Kliknięcie prawym przyciskiem myszy na folderze, naciśnięcie przycisku " ransack.."i znajdź pliki zawierające to, czego szukasz. Bardzo szybko też.

 22
Author: jasonmray,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-18 06:11:01

Baregrep (Baretail też jest dobry)

 19
Author: John Sheehan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-17 20:38:25

Minęło kilka lat odkąd zadałeś pytanie, ale polecam AstroGrep ( http://astrogrep.sourceforge.net).

Jest darmowy, open source i ma prosty interfejs. Używam go do wyszukiwania kodu cały czas.

 17
Author: jj.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-13 15:06:53

PowerShell był wspominany kilka razy. Oto, jak faktycznie użyłbyś go w grepiszowy sposób:

Get-ChildItem -recurse -include *.txt | Select-String -CaseSensitive "SomeString"

Przeszukuje rekurencyjnie wszystkie pliki tekstowe w bieżącym drzewie katalogów pod kątem SomeString z rozróżnieniem wielkości liter.

Nawet lepiej, uruchom to:

function pgrep { param([string]$search, [string]$inc) Get-ChildItem -recurse -include $inc | Select-String -CaseSensitive $search }

To zrób:

pgrep SomeStringToSearch *.txt

Następnie, aby naprawdę uczynić go magicznym, dodaj alias funkcji do swojego profilu PowerShell i możesz prawie złagodzić ból braku odpowiednich narzędzi wiersza poleceń.

 16
Author: jslatts,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-18 23:32:40

Cygwin zawiera grep. Wszystkie narzędzia GNU AMD Unix działa świetnie na Windows, jeśli zainstalujesz Cygwin.

Http://www.cygwin.com/

 14
Author: Corey Goldberg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-17 20:40:57

Ack działa dobrze na Windows (jeśli masz Perl). Uważam, że jest lepszy niż grep do wielu zastosowań.

 13
Author: Peter Mortensen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-18 23:30:02

Git on Windows = grep w cmd.exe

Właśnie się dowiedziałem, że instalacja Git da ci kilka podstawowych komend Linuksowych: cat, grep, scp i wszystkie inne dobre.

Zainstaluj następnie Dodaj folder Git bin do ścieżki, a następnie cmd.exe ma podstawową funkcjonalność Linuksa!

Http://code.google.com/p/msysgit/downloads/list?can=3

 12
Author: Daniel Magnusson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-18 23:38:52

DnGREP jest otwartym narzędziem grep Dla Windows. Obsługuje wiele fajnych funkcji, w tym:

  • Undo for replace
  • Możliwość wyszukiwania poprzez kliknięcie prawym przyciskiem myszy na folderze w Eksploratorze
  • Zaawansowane opcje wyszukiwania, takie jak wyszukiwanie fonetyczne i xpath
  • Szukaj w plikach PDF, archiwach i dokumentach programu Word

IMHO, też ma ładny i czysty interfejs:)

 10
Author: stankovski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-18 23:33:30

Zawsze używam WinGREP , ale miałem problemy z nie puszczaniem plików.

 7
Author: Tom Kidd,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-17 20:36:35

No cóż, obok portu Windows GNU grep pod adresem:

http://gnuwin32.sourceforge.net/

Istnieje również grep Borlanda (bardzo podobny do GNU one) dostępny w Darmowym kompilatorze Borlanda C++ (jest to freeware z narzędziami wiersza poleceń).

 7
Author: Milan Babuškov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-17 21:17:26

Z powodzeniem używam narzędzi GNU dla Win32 od dłuższego czasu i ma dobry grep, a także ogon i inne przydatne utile gnu dla win32. Unikam zapakowanej powłoki i po prostu używam plików wykonywalnych bezpośrednio w wierszu polecenia win32.

Ogon, który jest pakowany, to również całkiem dobra aplikacja.

 7
Author: user17314,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-18 06:37:26

Jestem autorem ABA Search and Replace. podobnie jak PowerGREP, obsługuje wyrażenia regularne, zapisywanie wzorców do dalszego użycia, cofanie dla zamienników, podgląd z podświetleniem składni dla HTML / CSS / JS / PHP, różne kodowania, w tym UTF-8 i UTF-16.

W porównaniu z PowerGREP, GUI jest mniej zaśmiecony. Aba natychmiast rozpoczyna wyszukiwanie, gdy wpisujesz wzorzec (wyszukiwanie przyrostowe), , dzięki czemu możesz eksperymentować z wyrażeniami regularnymi i natychmiast zobaczyć wyniki.

Zapraszam do wypróbowania Mojego narzędzia, chętnie odpowiem na wszelkie pytania.
 6
Author: Peter Kankowski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-12 03:32:12

Chciałem darmowe narzędzie grep Dla Windows, które pozwala kliknąć prawym przyciskiem myszy na folderze i zrobić wyszukiwanie regex KAŻDEGO pliku - bez żadnego ekranu Naga.

Poniżej znajduje się szybkie rozwiązanie oparte na findstr wspomnianym w poprzednim poście.

Utwórz plik tekstowy gdzieś na dysku twardym, gdzie przechowujesz długotrwałe narzędzia. Zmień nazwę na .bat lub .cmd i wklej do niego:

@echo off
set /p term="Search term> "
del %temp%\grepresult.txt
findstr /i /S /R /n /C:"%term%" "%~1\*.*" > "%temp%\grepresult.txt"
start notepad "%temp%\grepresult.txt"

Następnie przejdź do folderu SendTo. W systemie Windows 7 przejdź do %APPDATA%\Microsoft\Windows\SendTo i przeciągnij Skrót plik wsadowy do tego folderu SendTo.

Zmieniłem nazwę skrótu na 1 GREP, aby utrzymać go na górze listy SendTo.

Rzeczy, które chciałbym zrobić dalej z tym jest przekierowanie wyjścia findstr przez coś, co generuje plik html, tak że można kliknąć na każdej linii wyjściowej, aby otworzyć ten plik. Nie sądzę również, że działa to ze skrótami do folderów. Musiałbym sprawdzić parametr i sprawdzić, czy zawiera ".lnk".

 4
Author: Philip Beck,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-24 11:54:54

UnxUtils to ten, którego używam, działa dla mnie idealnie...

 3
Author: Johan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-18 06:00:17

Używałem grepa Borlanda od lat, ale znalazłem wzór, który nie pasuje. Eeeks. Czego jeszcze nie znalazł przez te lata? Napisałem prosty zamiennik wyszukiwania tekstu, który wykonuje rekurencję jak grep - to FS.EXE na source forge.

Grep zawodzi...

C:\DEV>GREP GAAPRNTR \SOURCE\TPALIB\*.PRG
<no results>

Windows findstr działa...

C:\DEV>FINDSTR GAAPRNTR \SOURCE\TPALIB\*.PRG
\SOURCE\TPALIB\TPGAAUPD.PRG:ffSPOOL(cRPTFILE, MEM->GAAPRNTR, MEM->NETTYPE)
\SOURCE\TPALIB\TPPRINTR.PRG:    AADD(mPRINTER,   TPACONFG->GAAPRNTR)
\SOURCE\TPALIB\TPPRINTR.PRG:               IF TRIM(TPACONFG->GAAPRNTR) <> TRIM(mPRINTER[2])
\SOURCE\TPALIB\TPPRINTR.PRG:                   REPLACE TPACONFG->GAAPRNTR WITH mPRINTER[2]
 3
Author: Jerry Lusa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-24 11:56:54

Moim wyborem jest odpowiednio nazwany Windows Grep :

  • ładny prosty GUI
  • obsługuje wyszukiwanie i zastępowanie
  • może pokazywać linie wokół znalezionych linii
  • może wyszukiwać w kolumnach w plikach CSV i plikach o stałej szerokości
 3
Author: John N,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-10 15:25:59

Jeśli potrzebujesz prostego w użyciu Narzędzia Windows Grep, stworzyłem jedno o nazwie P-Grep, które udostępniłem do bezpłatnego pobrania z mojej strony internetowej: www.adjutantit.com -Menu główne, pliki do pobrania.

Windows Grep wydawał się mieć problemy z dużą liczbą plików, więc napisałem swój własny - który wydaje się bardziej niezawodny. Możesz wybrać folder, kliknąć prawym przyciskiem myszy i wysłać go do P-Grep. Folder sendto zostanie rozpakowany podczas instalacji.

 2
Author: John Pember,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-07 00:16:33

Kolejnym dobrym wyborem jest MSYS . Daje Ci to kilka innych narzędzi GNU, które pozwolą Ci być bardziej produktywnym.

 2
Author: DDay,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-08 05:42:12

Łańcuch wyboru PowerShella jest podobny, to nie są te same opcje i semantyka, ale nadal jest potężny.

 1
Author: Jim Deville,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-17 20:36:00

Używam AJC Grep codziennie od lat. Jedynym poważnym ograniczeniem, jakie znalazłem, jest to, że ścieżki plików są ograniczone do 255 znaków i zatrzymuje się, gdy napotka jeden, a nie tylko wydaje ostrzeżenie. To denerwujące, ale nie zdarza się zbyt często.

Używam go na 64-bitowym Windows 7 Ultimate, więc jego 64-bitowe poświadczenia są w porządku.

 1
Author: CrispinH,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-21 11:57:28

GREP Dla Windows

Używam go od zawsze i na szczęście nadal jest dostępny. Jest super szybki i bardzo mały.

 1
Author: bbrown,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-05 23:02:02

Jeśli żadne z rozwiązań nie jest dokładnie tym, czego szukasz, może mógłbyś napisać wrapper do FindStr, który robi dokładnie to, czego potrzebujesz?

FindStr i tak jest całkiem dobry, więc powinien po prostu pukać GUI (jeśli chcesz) i dostarczać kilka dodatkowych funkcji(jak połączenie go z Find, aby znaleźć liczbę plików, które zawierają określony ciąg znaków [wspomniany powyżej]).

To, oczywiście, zakłada, że masz wymagania, czas i skłonność, aby to zrobić!

 0
Author: Stefan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-20 16:55:32

Mam Cygwin zainstalowany na mojej maszynie i umieścić Katalog Bin Cygwin w mojej ścieżce środowiskowej, więc Cygwin grep działa jak zwykle w wierszu poleceń, który rozwiązuje wszystkie moje potrzeby Skryptowe dla grepa w tej chwili.

 0
Author: Peter Mortensen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-18 23:36:50