Câu trả lời:
(Tôi vẫn là một fan hâm mộ của PowerGREP , nhưng tôi không sử dụng nó nữa.)
Tôi biết bạn đã đề cập đến nó, nhưng PowerGREP thật tuyệt vời .
Một số tính năng yêu thích của tôi là:
Bây giờ tôi nhận ra rằng các công cụ grep khác có thể làm tất cả các điều trên. Chỉ có PowerGREP gói tất cả các chức năng vào một GUI rất dễ sử dụng.
Từ những người tuyệt vời đã mang đến cho bạn RegexBuddy và người mà tôi không có mối liên hệ nào ngoài việc yêu thích công cụ của họ. (Cần lưu ý rằng RegexBuddy bao gồm một phiên bản cơ bản của grep (dành cho Windows) và nó có giá thấp hơn nhiều so với PowerGREP.)
FINDSTR khá mạnh mẽ, hỗ trợ các biểu thức chính quy và có các ưu điểm là có trên tất cả các máy 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
Ví dụ sử dụng: findstr text_to_find *
hoặc để tìm kiếm đệ quyfindstr /s text_to_find *
GrepWin Nguồn mở và miễn phí (GPL)
Tôi đã sử dụng grepWin được viết bởi một trong những kẻ tortoisesvn. Công việc trên Windows ...
Cập nhật tháng 7 năm 2013:
Một công cụ grep khác mà tôi hiện đang sử dụng mọi lúc trên Windows là AstroGrep :
Khả năng của nó cho tôi thấy nhiều hơn là chỉ tìm kiếm dòng (tức là --context = NUM của dòng lệnh grep) là vô giá.
Và nó rất nhanh. Rất nhanh, ngay cả trên một máy tính cũ có ổ đĩa không SSD (tôi biết, họ đã từng làm ổ cứng này với các đĩa quay , được gọi là đĩa , điên phải không?)
Nó là miễn phí.
Nó là xách tay (lưu trữ zip đơn giản để giải nén).
Câu trả lời gốc tháng 10 năm 2008
Gnu Grep không sao
Bạn có thể tải xuống ví dụ tại đây: ( trang web ftp )
Tất cả các tùy chọn thông thường ở đây.
Điều đó, kết hợp với gawk và xargs (bao gồm 'find', từ GnuWin32 ) và bạn thực sự có thể viết kịch bản giống như bạn trên Unix!
Xem thêm các tùy chọn tôi đang sử dụng để grep đệ quy :
grep --include "*.xxx" -nRHI "my Text to grep" *
Lệnh ghép ngắn chuỗi chọn của PowerShell vẫn ổn trong v1.0, nhưng tốt hơn đáng kể cho v2.0 . Có PowerShell được tích hợp sẵn trong các phiên bản Windows gần đây có nghĩa là các kỹ năng của bạn ở đây sẽ luôn hữu ích mà không cần cài đặt trước.
Các tham số mới được thêm vào Chuỗi chọn: Lệnh ghép ngắn Chuỗi chọn hiện hỗ trợ các tham số mới, chẳng hạn như:
- -Context: Điều này cho phép bạn xem các dòng trước và sau dòng khớp
- -Tất cả: cho phép bạn xem tất cả các trận đấu trong một dòng (Trước đây, bạn chỉ có thể thấy trận đấu đầu tiên trong một dòng)
- -NotMatch: Tương đương với grep -vo
- -Encoding: để chỉ định mã hóa ký tự
Tôi thấy nó phù hợp để tạo ra một hàm gcir
cho Get-ChildItem -Recurse .
, với thông minh để truyền tham số chính xác và bí danh ss
cho Select-String
. Vì vậy, bạn viết:
gcir * .txt | ss foo
ls . *.txt -r| sls -ca "SomeString"
sls
cho Select-String
thực sự quá dài?
Nó có thể không chính xác rơi vào danh mục 'grep', nhưng tôi không thể truy cập vào Windows mà không có tiện ích có tên AgentRansack . Đây là tiện ích "tìm trong tệp" dựa trên gui với hỗ trợ regex. Thật đơn giản để nhấp chuột phải vào một thư mục, nhấn "lục soát .." và tìm các tệp chứa những gì bạn đang tìm kiếm. Vô cùng nhanh quá.
Đã một vài năm kể từ khi bạn đặt câu hỏi, nhưng tôi khuyên bạn nên dùng AstroGrep ( http://astrogrep.sourceforge.net ).
Nó miễn phí, mã nguồn mở và có giao diện đơn giản. Tôi sử dụng nó để tìm kiếm mã mọi lúc.
PowerShell đã được đề cập một vài lần. Đây là cách bạn thực sự sẽ sử dụng nó một cách khéo léo:
Get-ChildItem -recurse -include *.txt | Select-String -CaseSensitive "SomeString"
Nó đệ quy tìm kiếm tất cả các tệp văn bản trong cây thư mục hiện tại SomeString
với độ nhạy trường hợp.
Thậm chí tốt hơn, chạy này:
function pgrep { param([string]$search, [string]$inc) Get-ChildItem -recurse -include $inc | Select-String -CaseSensitive $search }
Sau đó làm:
pgrep SomeStringToSearch *.txt
Sau đó, để thực sự làm cho nó trở nên kỳ diệu, hãy thêm bí danh chức năng vào Hồ sơ PowerShell của bạn và bạn gần như có thể làm giảm nỗi đau của việc không có các công cụ dòng lệnh thích hợp.
Cygwin bao gồm grep. Tất cả các công cụ GNU đều là công cụ Unix hoạt động tốt trên Windows nếu bạn cài đặt Cygwin.
Git trên Windows = grep trong cmd.exe
Tôi mới phát hiện ra việc cài đặt Git sẽ cung cấp cho bạn một số lệnh Linux cơ bản: cat, grep, scp và tất cả các lệnh tốt khác.
Cài đặt sau đó thêm thư mục Git bin vào PATH của bạn và sau đó cmd.exe của bạn có chức năng Linux cơ bản!
dnGREP là một công cụ grep mã nguồn mở cho Windows. Nó hỗ trợ một số tính năng thú vị bao gồm:
IMHO, nó cũng có giao diện đẹp và sạch :)
Tôi luôn sử dụng WinGREP , nhưng tôi gặp vấn đề với việc không buông tập tin.
Chà, bên cạnh cổng Windows của GNU grep tại:
http://gnuwin32.sourceforge.net/
cũng có grep của Borland (rất giống với GNU) có sẵn trong phần mềm miễn phí Trình biên dịch C ++ miễn phí của Borland (đây là phần mềm miễn phí với các công cụ dòng lệnh).
Tôi đã sử dụng thành công các tiện ích GNU cho Win32 trong một thời gian và nó có một grep tốt cũng như đuôi và các tiện ích gnu tiện dụng khác cho win32. Tôi tránh shell được đóng gói và chỉ cần sử dụng các tệp thực thi ngay trong dấu nhắc lệnh win32.
Đuôi được đóng gói là một ứng dụng nhỏ khá tốt.
Tôi là tác giả của Tìm kiếm và Thay thế Aba. Giống như PowerGREP, nó hỗ trợ các biểu thức thông thường, lưu các mẫu để sử dụng thêm, hoàn tác thay thế, xem trước với tô sáng cú pháp cho HTML / CSS / JS / PHP, các mã hóa khác nhau, bao gồm UTF-8 và UTF-16.
So với PowerGREP, GUI ít lộn xộn hơn. Aba ngay lập tức bắt đầu tìm kiếm khi bạn đang gõ mẫu (tìm kiếm gia tăng), vì vậy bạn có thể thử nghiệm các biểu thức thông thường và ngay lập tức xem kết quả.
Bạn được hoan nghênh để thử công cụ của tôi; Tôi sẵn dàng trả lời bất kỳ câu hỏi nào.
Tôi muốn có một công cụ grep miễn phí cho Windows cho phép bạn nhấp chuột phải vào thư mục và thực hiện tìm kiếm regex cho mọi tệp - mà không cần bất kỳ màn hình mè nheo nào.
Sau đây là một giải pháp nhanh chóng dựa trên findstr
đề cập trong bài viết trước.
Tạo một tệp văn bản ở đâu đó trên ổ cứng của bạn, nơi bạn giữ các công cụ sống lâu. Đổi tên thành .bat hoặc .cmd và dán các mục sau vào đó:
@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"
Sau đó duyệt đến thư mục SendTo. Trên Windows 7 duyệt %APPDATA%\Microsoft\Windows\SendTo
và kéo một phím tắt của tệp bó đến thư mục SendTo đó.
Tôi đã đổi tên phím tắt để 1 GREP
giữ nó ở đầu danh sách SendTo.
Điều tôi muốn làm tiếp theo với điều này là dẫn đầu ra của findstr
một thứ gì đó sẽ tạo ra một tệp html để bạn có thể nhấp vào từng dòng đầu ra để mở tệp đó. Ngoài ra, tôi không nghĩ rằng nó hoạt động với các phím tắt đến thư mục. Tôi phải kiểm tra tham số và xem nó có chứa ".lnk" không.
Tôi đã sử dụng grep của Borland trong nhiều năm nhưng chỉ tìm thấy một mô hình mà nó sẽ không phù hợp. Eeek. Những gì khác đã không được tìm thấy trong những năm qua? Tôi đã viết một thay thế tìm kiếm văn bản đơn giản mà đệ quy như grep - đó là FS.EXE trên giả mạo nguồn.
grep thất bại ...
C:\DEV>GREP GAAPRNTR \SOURCE\TPALIB\*.PRG
<no results>
cửa sổ findstr hoạt động ...
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]
Công cụ lựa chọn của tôi là Windows Grep có tên thích hợp :
Chuỗi chọn của PowerShell tương tự nhau, nó không giống các tùy chọn và ngữ nghĩa, nhưng nó vẫn mạnh mẽ.
Nếu bạn muốn sử dụng công cụ Windows Grep đơn giản, tôi đã tạo một công cụ có tên P-Grep mà tôi đã cung cấp để tải xuống miễn phí từ trang web của mình: www.adjutantit.com - menu chính, tải xuống.
Windows Grep dường như có vấn đề với một số lượng lớn tệp, vì vậy tôi đã tự viết - có vẻ đáng tin cậy hơn. Bạn có thể chọn một thư mục, nhấp chuột phải và gửi nó đến P-Grep. Thư mục sendto không bị lỗi trong quá trình cài đặt.
Tôi đã sử dụng AJC Grep hàng ngày trong nhiều năm. Hạn chế lớn duy nhất tôi tìm thấy là đường dẫn tệp bị giới hạn ở 255 ký tự và nó dừng lại khi gặp một ký tự, thay vì chỉ đưa ra cảnh báo. Nó gây phiền nhiễu nhưng không xảy ra rất thường xuyên.
Tôi sử dụng nó trên Windows 7 Ultimate 64 bit, vì vậy thông tin đăng nhập 64 bit của nó vẫn ổn.
Tôi đã sử dụng nó mãi mãi và may mắn là nó vẫn có sẵn. Nó siêu nhanh và rất nhỏ.
Nếu không có giải pháp nào phù hợp với những gì bạn đang tìm kiếm, có lẽ bạn có thể viết một trình bao bọc cho FindStr, chính xác những gì bạn yêu cầu?
Dù sao FindStr cũng khá tốt nên chỉ cần gõ GUI (nếu bạn muốn) và cung cấp một vài tính năng bổ sung (như kết hợp với Tìm để tìm số lượng tệp chứa chuỗi đã chỉ định [đã đề cập ở trên]).
Điều này, tất nhiên, giả sử bạn có yêu cầu, thời gian và thiên hướng để làm điều này!
Tôi đã cài đặt Cygwin trên máy của mình và đặt thư mục bin Cygwin vào đường dẫn môi trường của tôi, vì vậy gg Cygwin hoạt động như bình thường trong một dòng lệnh giải quyết tất cả các nhu cầu về kịch bản của tôi cho grep tại thời điểm này.