Jaki jest najszybszy (dokładny) sposób wyszukiwania ciągu tekstowego w plikach na komputerze z systemem Windows?


Odpowiedzi:


11

Notepad ++ ma opcję „znajdź w plikach”, która znajduje się w menu „Wyszukaj”. Pozwoli ci to przeszukać wiele plików w folderze (możesz określić folder) i wyświetli również numery wierszy każdego pliku . Możesz przełączać, czy podfoldery i ukryte foldery są uwzględniane w wyszukiwaniu, a także umożliwia wyszukiwanie za pomocą \ t \ n itp. I wyszukiwanie wyrażeń regularnych, jeśli potrzebujesz.

Notepad ++ to edytor dla programistów Windows (nie IDE) i jest również Open Source.

(Zdaję sobie sprawę, że najprawdopodobniej słyszałeś o Notatniku ++, ale wymieniam go tutaj jako opcję, ponieważ nie byłeś świadomy tej konkretnej funkcji, a dla innych, którzy natkną się na ten wątek później.

Twoje zdrowie :)


Tak, muszę przyznać, że wcześniej używałem do tego Notepad ++.
Jon Cage

1
@JonCage jest ktoś w tym wątku sevenforums.com/software/…, który również mówi tak, jakbyś powiedział „Przyznaję”, jeśli chodzi o przydatne rzeczy. To bardzo dziwny sposób mówienia. Możesz chcieć poznać tę osobę. Może twój bliźniak.
barlop

Notepad ++ jest świetny. Inne edytory programistyczne, takie jak SciTE, mają również podobną funkcjonalność.
TimothyAWiseman


5

Findstrzawsze dla mnie działa. Może używać symboli wieloznacznych text * lub wyrażeń regularnych dla szukanego ciągu. Findstr /?po więcej


5

W systemach uniksowych ludzie najprawdopodobniej użyliby do tego grep, więc dlaczego by nie użyć Windows Grep?

http://www.wingrep.com/


Windows Grep może czasami stać się niestabilny, ale jest to najszybszy program do wyszukiwania, jakiego kiedykolwiek używałem.
yakatz

@yakatz Dziękujemy za wzmiankę o możliwej niestabilności w Windows Grep. Poszukam innego narzędzia grep / replace!
pacoverflow

wingrep został wycofany, jednak grepwin jest nadal dostępny i działa bardzo dobrze.
techturtle,

3

Oto rozwiązanie Powershell:

gci -r $SomePath -filter "*.cpp","*.h" | Select-String $FindThisString

-rW gcijest dla recurse, i oczywiście nie jest obowiązkowe, podobnie jak dwa filtry rozszerzeń plików. Przydatnym parametrem Select-Stringjest to, -listktóry zgłasza tylko pierwsze wystąpienie dopasowania w pliku, zamiast podawać każde jego wystąpienie w pliku.

Być może chcesz natychmiast otworzyć każdy plik, w którym znaleziono dopasowanie? Cóż, następująca niewielka zmiana powyższego jest bardzo przydatna, w zależności od domyślnego powiązania plików jako:

gci -r $SomePath -filter "*.cpp","*.h" | Select-String $FindThisString -list | ii


Już miałem zamieścić to samo :)
Caleb Jares,

Czy na pewno -filter "*.cpp","*.h"akceptujesz wiele rozszerzeń? Powinno to raczej brzmieć-include ("*.cpp","*.hpp")
mloskot

2

podczas lokalizacji niektórych SW używam DocFetchera do wyszukiwania tych samych ciągów we wcześniej przetłumaczonych plikach. Jest darmowy i open source, ale najpierw musi utworzyć indeks. Po prostu spróbuj. :-)


1

Użyj „ciągów” dostarczonych przez M $ . Kilka lat temu kupili bardzo dobre narzędzia od Sysinternals. Nie wymaga instalacji, po prostu upuść go na pudełku i uruchom w celu uzyskania składni. Łatwy w użyciu i WIELKI!


1

Kolejna grepimplementacja dla systemu Windows autorstwa znanych twórców Tortoise SVN:

grepWin


0

Jeśli jesteś zadowolony z linii poleceń / z Linuksem. Czy mogę zasugerować zainstalowanie wersji grep dla systemu Windows?

cygwin jest dość poręcznym sposobem na uzyskanie tego i oferuje pełne środowisko Linux, z powłoką bash i terminalem rxvt. W przeciwnym razie, jeśli chcesz tylko narzędzia, które są gnuwin32, ale utkniesz z monitem Windows cmd.exe.

Microsoft faktycznie ma własną wersję narzędzi uniksowych do pobrania, ale wydawały się one dość powolne w porównaniu do portów GNU, kiedy je wypróbowałem. Zamierzają też złomować je za pomocą systemu Windows 8.


0

W ten sposób szukam ciągów tekstowych w rejestrze systemu Windows lub plików na moim komputerze z systemem Windows XP. Załóżmy, że chcę znaleźć ciąg „Enterprise” w zwykłym pliku tekstowym na dysku c:, a następnie zapisać dane wyjściowe w pliku o nazwie search_result.txt w folderze c: \ windows \ temp

Otwórz wiersz polecenia, a następnie wpisz:

findstr "Enterprise" c: *. txt> c: \ windows \ temp \ search_result.txt

W szukanym ciągu rozróżniana jest wielkość liter. „Przedsiębiorstwo” i „przedsiębiorstwo” nie znajdą tego samego ciągu.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.