Який найшвидший (точний) спосіб пошуку рядка тексту у файлах на машині Windows?


9

Як випливає з назви, який найшвидший (точний) спосіб знайти, які рядки файлів відповідають певному рядку.

Зокрема, я шукаю .cppі .hфайли.


Відповіді:


11

У блокноті ++ є опція "знайти у файлах", яка знаходиться в меню "Пошук". Це дозволить вам шукати кілька файлів у папці (ви можете вказати папку), а також покаже номери рядків кожного файлу. . Ви можете переключити, чи включаються в пошук підпапки та приховані папки, і це також дозволить вам шукати за допомогою \ t \ n тощо та шукати за допомогою регулярних виразів.

Notepad ++ - це редактор програмістів Windows (а не IDE) і є також з відкритим кодом.

(Я розумію , що ви , швидше за все , чули про Notepad ++, але я просто згадати його тут , як варіант , упаковують ви не знали про цю конкретної функції, і для тих , хто наштовхнутися на цю тему пізніше.

Ура :)


Так, мушу визнати, я раніше для цього використовував Notepad ++.
Джон Кейдж

1
@JonCage є хтось у цій темі sevenforums.com/software/…, який також говорить так, як ви говорите "я визнаю", коли мова йде про корисні речі. Це надзвичайно дивний спосіб розмови. Ви можете побачити цю людину. Можливо, твій близнюк.
барлоп

Блокнот ++ - це чудово. Інші редактори програміста, такі як SciTE, також мають подібну функціональність.
TimothyAWiseman


5

Findstrзавжди працює на мене. Він може використовувати текст * wildcards або регулярний вираз для рядка пошуку. Findstr /?для більш


5

У системах Unix люди, швидше за все, використовують grep для цього, так чому б не використовувати Windows Grep?

http://www.wingrep.com/


Windows Grep може колись стати нестабільним, але це найшвидша програма пошуку, яку я коли-небудь використовував.
якуц

@yakatz Дякую, що згадуєте про можливу нестабільність у Windows Grep, я буду шукати інший інструмент grep / substitution!
pacoverflow

Крилреп припиняється, однак grepwin все ще доступний і працює дуже добре.
techturtle

3

Ось рішення Powershell:

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

-rУ gciдля Recurse, і, звичайно , що не є обов'язковим, як і два розширення файлу фільтрів. Корисний параметр Select-String, -listякий повідомляє лише про перший екземпляр збігу у файлі, замість того, щоб давати вам кожне виникнення цього файлу.

Можливо, ви хочете миттєво відкрити кожен файл, де знайдено збіг? Ну, наступні невеликі зміни до вищезазначених є досить корисними, залежно від того, що у вас є асоціація файлів за замовчуванням:

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


Я збирався опублікувати те саме:
Caleb Jares

Ви впевнені, -filter "*.cpp","*.h"що приймаєте кілька розширень? Про це слід сказати-include ("*.cpp","*.hpp")
mloskot

2

під час локалізації деякого SW я використовую DocFetcher для пошуку тих же рядків у раніше перекладених файлах. Він безкоштовний і з відкритим кодом, але для початку потрібно створити індекс. Просто спробуйте. :-)


1

Використовуйте "рядки", надані M $ . За кілька років тому вони придбали у Sysinternals дуже хороші комунальні послуги. Не потребує встановлення, просто опустіть його на поле і запустіть його для синтаксису. Простий у використанні та ВЕЛИКИЙ!


1

Ще одна grepреалізація для Windows відомих розробників черепахових svn:

grepWin


0

Якщо ви раді в командному рядку / з Linux. Можливо, я б запропонував переглянути версію grep для Windows?

cygwin - це досить зручний спосіб досягти цього і надасть вам повне середовище Linux, з оболонкою bash та rxvt-терміналом. В іншому випадку, якщо ви просто хочете, щоб інструменти є gnuwin32, але тоді ви будете застрягли у вікні Windows cmd.exe.

Microsoft насправді має власну версію інструментів Unix як завантаження, але вони здавалися досить повільними порівняно з портами gnu, коли я спробував їх. Вони також збираються брати їх з Windows 8.


0

Ось так я шукаю текстові рядки в реєстрі Windows або файли на моїй машині Windows XP. Припустимо, що я хочу знайти рядок "Enterprise" у простому текстовому файлі на c: диску, а потім записати вихід у файл під назвою search_result.txt у c: \ windows \ temp

Відкрийте командний рядок і введіть:

findstr "Підприємство" c: *. txt> c: \ windows \ temp \ search_result.txt

Рядок, яку ви шукаєте, відрізняється від регістру. "Підприємство" та "підприємство" не знайдуть однаковий рядок.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.