it-swarm-id.com

Apa alat grep yang baik untuk Windows?

Adakah rekomendasi tentang grep alat untuk Windows? Idealnya yang bisa memanfaatkan OS 64-bit.

Saya mengetahui Cygwin , tentu saja, dan juga telah menemukan PowerGREP , tapi saya ingin tahu apakah ada permata tersembunyi di luar sana?

290
Portman

Berdasarkan rekomendasi dalam komentar, saya sudah mulai menggunakan grepWin dan ini fantastis dan gratis .


(Saya masih penggemar PowerGREP , tapi saya tidak menggunakannya lagi.)

Saya tahu Anda sudah menyebutkannya, tetapi PowerGREP keren .

Beberapa fitur favorit saya adalah:

  • Klik kanan pada folder untuk menjalankan PowerGREP di atasnya
  • Gunakan ekspresi reguler atau teks literal
  • Tentukan wildcard untuk file yang akan disertakan & dikecualikan
  • Cari & ganti
  • Mode pratinjau bagus karena Anda dapat memastikan Anda mengganti apa yang Anda inginkan.

Sekarang saya menyadari bahwa alat grep lain dapat melakukan semua hal di atas. Hanya saja PowerGREP mengemas semua fungsi menjadi GUI yang sangat mudah digunakan.

Dari orang-orang luar biasa yang sama yang membawakan Anda RegexBuddy dan yang saya tidak memiliki afiliasi selain mencintai barang-barang mereka. (Perlu dicatat bahwa RegexBuddy menyertakan versi dasar grep (untuk Windows) itu sendiri dan harganya jauh lebih murah daripada PowerGREP.)


Solusi tambahan

Perintah Windows yang ada

Implementasi perintah Linux pada Windows

Grep tools dengan antarmuka grafis

Alat Grep tambahan

188
Mark Biek

FINDSTR cukup kuat, mendukung ekspresi reguler dan memiliki keunggulan karena sudah ada di semua mesin 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

Contoh penggunaan: findstr text_to_find * atau untuk mencari secara rekursif findstr /s text_to_find *

315
Ray Hayes

GrepWin Gratis dan open source (GPL)

enter image description hereSaya telah menggunakan grepWin yang ditulis oleh salah satu orang tortoisesvn. Apakah pekerjaan di Windows ...

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

104
Stan Sarama

Pembaruan Juli 2013:

Alat grep lain yang sekarang saya gunakan sepanjang waktu di Windows adalah AstroGrep :

AstroGrep awesomeness

Kemampuannya untuk menunjukkan kepada saya lebih dari sekadar pencarian baris (mis. --Context = NUM ​​dari grep baris-perintah) sangat berharga.
Dan itu cepat. Sangat cepat, bahkan pada komputer lama dengan non - SSD drive (Saya tahu, mereka biasa melakukan hard drive ini dengan disk berputar , disebut piring-piring , gila kan?)

Ini gratis.
Ini portabel (arsip Zip sederhana untuk unzip).


Jawaban asli Oktober 2008

alt textGnu Grep tidak apa-apa

Anda dapat mengunduhnya misalnya di sini: ( ftp situs )

Semua opsi biasa ada di sini.

Itu, dikombinasikan dengan gawk dan xargs (termasuk 'find', dari GnuWin32 ), dan Anda dapat benar-benar skrip seperti Anda berada di Unix!

Lihat juga opsi yang saya gunakan untuk grep secara rekursif :

grep --include "*.xxx" -nRHI "my Text to grep" *
52
VonC

Pilih-String cmdlet PowerShell baik-baik saja di v1.0, tetapi secara signifikan lebih baik untuk v2. . Memiliki PowerShell bawaan ke versi Windows terbaru berarti keahlian Anda di sini akan selalu berguna, tanpa terlebih dahulu menginstal sesuatu.

Parameter baru ditambahkan ke Select-String : cmdlet Select-String sekarang mendukung parameter baru, seperti:

  • -Konteks: Ini memungkinkan Anda melihat garis sebelum dan sesudah garis pertandingan
  • -AllMatches: yang memungkinkan Anda melihat semua pertandingan dalam satu baris (Sebelumnya, Anda hanya bisa melihat pertandingan pertama dalam satu baris)
  • -NotMatch: Setara dengan grep -v o
  • -Encoding: untuk menentukan pengkodean karakter

Saya merasa perlu untuk membuat fungsi gcir untuk Get-ChildItem -Recurse ., dengan smart untuk memberikan parameter dengan benar, dan alias ss untuk Select-String. Jadi, Anda menulis:

gcir * .txt | ss foo

30
Jay Bazuzi

Ini mungkin tidak persis jatuh ke dalam kategori 'grep', tapi saya tidak bisa bertahan di Windows tanpa utilitas bernama AgentRansack . Ini adalah utilitas "find in files" berbasis gui dengan dukungan regex. Sangat mudah untuk mengklik kanan pada folder, tekan "ransack .." dan temukan file yang mengandung apa yang Anda cari. Sangat cepat juga.

23
jasonmray

Baregrep ( Baretail juga bagus)

19
John Sheehan

Sudah beberapa tahun sejak Anda mengajukan pertanyaan, tetapi saya akan merekomendasikan AstroGrep ( http://astrogrep.sourceforge.net ).

Ini gratis, open source, dan memiliki antarmuka yang sederhana. Saya menggunakannya untuk mencari kode setiap saat.

17
jj.

PowerShell telah disebutkan beberapa kali. Inilah cara Anda akan menggunakannya dengan benar:

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

Itu secara rekursif mencari semua file teks di pohon direktori saat ini untuk SomeString dengan sensitivitas kasus.

Lebih baik lagi, jalankan ini:

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

Lalu lakukan:

pgrep SomeStringToSearch *.txt

Kemudian untuk benar-benar membuatnya ajaib, tambahkan fungsi alias ke Profil PowerShell Anda dan Anda hampir dapat menghilangkan rasa sakit karena tidak memiliki alat baris perintah yang tepat.

16
jslatts

Cygwin termasuk grep. Semua alat GNU AMD Unix berfungsi dengan baik di Windows jika Anda menginstal Cygwin.

http://www.cygwin.com/

14
Corey Goldberg

ack berfungsi dengan baik di Windows (jika Anda punya Perl ). Saya merasa lebih baik daripada grep untuk banyak kegunaan.

13
cjm

Git di Windows = grep di cmd.exe

Saya baru tahu menginstal Git akan memberi Anda beberapa perintah Linux dasar: cat, grep, scp dan semua yang bagus lainnya.

Instal lalu tambahkan folder Git bin ke PATH Anda dan kemudian cmd.exe Anda memiliki fungsi Linux dasar!

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

13
Daniel Magnusson

dnGREP adalah alat grep open source untuk Windows. Ini mendukung sejumlah fitur keren termasuk:

  • Batalkan untuk diganti
  • Kemampuan untuk mencari dengan mengklik kanan pada folder di Explorer
  • Opsi pencarian lanjutan seperti pencarian fonetik dan xpath
  • Cari di dalam PDF file, arsip, dan dokumen Word

IMHO, ia memiliki antarmuka yang bagus dan bersih juga :)

10
stankovski

Saya selalu menggunakan WinGREP , tapi saya punya masalah dengan itu tidak melepaskan file.

7
Tom Kidd

Saya telah berhasil menggunakan tilitas GNU untuk Win32 untuk beberapa waktu dan memiliki grep yang baik serta ekor dan utilitas gnu berguna lainnya untuk win32. Saya menghindari Shell yang dikemas dan cukup menggunakan executables tepat di perintah win32 Prompt.

Ekor yang dikemas adalah aplikasi kecil yang cukup bagus juga.

7
user17314

Nah, di samping port Windows dari GNU grep di:

http://gnuwin32.sourceforge.net/

ada juga grep Borland (sangat mirip dengan GNU one) yang tersedia di Free C++ Compiler Borland freeware (ini freeware dengan alat-alat baris perintah).

7
Milan Babuškov

Saya penulis Aba Search and Replace. Sama seperti PowerGREP, ia mendukung ekspresi reguler, menyimpan pola untuk penggunaan lebih lanjut, membatalkan untuk penggantian, pratinjau dengan highlight sintaks untuk HTML/CSS/JS/PHP, pengkodean yang berbeda, termasuk UTF-8 dan UTF-16.

Dibandingkan dengan PowerGREP, GUI kurang berantakan. Aba langsung mulai mencari ketika Anda mengetikkan pola (tambahan cari), sehingga Anda dapat bereksperimen dengan ekspresi reguler dan segera melihat hasilnya.

Anda disambut untuk mencoba alat saya; Saya akan dengan senang hati menjawab pertanyaan apa pun.

6
Peter Kankowski

Saya ingin alat grep gratis untuk Windows yang memungkinkan Anda untuk mengklik kanan pada folder dan melakukan pencarian regex setiap file - tanpa layar cerewet.

Berikut ini adalah solusi cepat berdasarkan findstr yang disebutkan dalam posting sebelumnya.

Buat file teks di suatu tempat di hard drive Anda tempat Anda menyimpan alat berumur panjang. Ganti nama menjadi .bat atau .cmd dan rekatkan yang berikut ke dalamnya:

@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"

Kemudian browse ke folder SendTo. Pada Windows 7, jelajahi %APPDATA%\Microsoft\Windows\SendTo dan seret pintasan file batch ke folder SendTo itu.

Saya mengganti nama pintasan menjadi 1 GREP agar tetap di atas daftar SendTo.

Hal-hal yang ingin saya lakukan selanjutnya dengan ini adalah mem-pipe output dari findstr melalui sesuatu yang akan menghasilkan file html sehingga Anda bisa mengklik pada setiap baris output untuk membuka file itu. Juga, saya tidak berpikir itu berfungsi dengan cara pintas ke folder. Saya harus memeriksa parameter dan melihat apakah itu berisi ".lnk".

4
Philip Beck

Alat pilihan saya adalah yang dinamai dengan tepat Windows Grep :

  • GUI sederhana yang bagus
  • mendukung pencarian dan penggantian
  • dapat menunjukkan garis-garis di sekitar garis yang ditemukan
  • dapat mencari di dalam kolom dalam CSV dan file dengan lebar tetap
3
John N

nxUtils yang saya gunakan, sangat cocok untuk saya ...

3
Johan

Saya menggunakan grep Borland selama bertahun-tahun tetapi hanya menemukan pola yang tidak cocok. Eeeks. Apa lagi yang belum ditemukan selama bertahun-tahun? Saya menulis pengganti pencarian teks sederhana yang melakukan rekursi seperti grep - ini FS.EXE pada source forge.

grep gagal ...

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

windows findstr berfungsi ...

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
Jerry Lusa

Jika Anda ingin alat Windows Grep yang mudah digunakan, saya membuat yang disebut P-Grep yang telah saya buat tersedia untuk diunduh gratis dari situs web saya: www.adjutantit.com - menu beranda, unduhan.

Windows Grep tampaknya memiliki masalah dengan sejumlah besar file, jadi saya menulis sendiri - yang tampaknya lebih dapat diandalkan. Anda dapat memilih folder, klik kanan dan kirim ke P-Grep. Folder sendto tidak akan dihapus saat instalasi.

2
John Pember

Pilihan bagus lainnya adalah MSYS . Ini memberi Anda banyak utilitas GNU lainnya untuk memungkinkan Anda menjadi lebih produktif.

2
DDay

GREP untuk Windows

Saya sudah menggunakannya selamanya dan untungnya masih tersedia. Ini sangat cepat dan sangat kecil.

1
bbrown

Pilih-string PowerShell mirip, itu bukan opsi dan semantik yang sama, tetapi masih kuat.

1
Jim Deville

Saya telah menggunakan AJC Grep setiap hari selama bertahun-tahun. Satu-satunya batasan utama yang saya temukan adalah jalur file dibatasi hingga 255 karakter dan berhenti ketika bertemu satu, bukan hanya mengeluarkan peringatan. Ini menjengkelkan tetapi tidak sering terjadi.

Saya menggunakannya pada Windows 7 Ultimate 64-bit, jadi kredensial 64-bitnya baik-baik saja.

1
CrispinH

Saya telah Cygwin menginstal pada mesin saya dan meletakkan direktori bin Cygwin di jalur lingkungan saya, sehingga grep Cygwin bekerja seperti biasa di baris perintah yang menyelesaikan semua kebutuhan skrip saya untuk grep saat ini.

0
Satyrn

Jika tidak ada solusi yang sesuai dengan yang Anda cari, mungkin Anda bisa menulis pembungkus untuk FindStr yang melakukan persis seperti yang Anda butuhkan?

FindStr cukup bagus, jadi seharusnya hanya mengetuk GUI (jika Anda mau) dan menyediakan beberapa fitur tambahan (seperti menggabungkannya dengan Find untuk menemukan jumlah file yang berisi string tertentu [disebutkan di atas]).

Ini, tentu saja, mengasumsikan Anda memiliki persyaratan, waktu, dan kecenderungan untuk melakukan ini!

0
Stefan