it-swarm-tr.com

Windows için iyi grep araçları nelerdir?

Herhangi bir öneriniz grep Windows için araçlar? İdeal olarak 64 bit işletim sisteminden yararlanabilecek olanlar.

Tabii ki Cygwin farkındayım ve ayrıca PowerGREP 'u da keşfettim, ama orada gizli mücevher olup olmadığını merak ediyorum.

290
Portman

Yorumlardaki önerilere dayanarak, grepWin kullanmaya başladım ve fantastik ve ücretsiz kullanmaya başladım.


(Ben hala PowerGREP hayranıyım, ama artık kullanmıyorum.)

Zaten bahsettiğini biliyorum, ama PowerGREP harika .

En sevdiğim özelliklerden bazıları:

  • PowerGREP'i çalıştırmak için bir klasöre sağ tıklayın
  • Normal ifadeler veya değişmez metin kullanın
  • Dahil edilecek ve hariç tutulacak dosyalar için joker karakterler belirtin
  • Ara ve değiştir
  • Önizleme modu Güzel, çünkü niyetini değiştirdiğinizden emin olabilirsiniz.

Şimdi diğer grep aletlerinin yukarıdakilerin hepsini yapabileceğinin farkındayım. Bu sadece PowerGREP'nin tüm işlevselliği kullanımı kolay bir GUI'ye yerleştirmesidir.

Sizi getiren aynı harika insanlardan RegexBuddy ve eşyalarını sevmenin ötesinde bir ilişkim yok. (RegexBuddy'nin grep'in temel bir versiyonunu içerdiği unutulmamalıdır (Windows için) ve PowerGREP'den çok daha ucuzdur.)


Ek çözümler

Mevcut Windows komutları

Windows'ta Linux komut uygulamaları

Grafik arayüzlü grep takımları

Ek Grep araçları

188
Mark Biek

FINDSTR oldukça güçlü, destekler normal ifadeler ve zaten tüm Windows makinelerinde bulunmanın avantajları var.

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

Örnek kullanım: findstr text_to_find * veya yinelemeli olarak arama yapmak için findstr /s text_to_find *

315
Ray Hayes

GrepWin Ücretsiz ve açık kaynak (GPL)

enter image description hereKaplumbağaların adamlarından birinin yazdığı grepWin'i kullanıyorum. Windows'ta iş yapar mı?.

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

104
Stan Sarama

Temmuz 2013 Güncellemesi:

Şimdi her zaman Windows'ta kullandığım başka bir grep aracı AstroGrep :

AstroGrep awesomeness

Bana sadece satır aramasından daha fazlasını gösterme yeteneği (yani --context = bir komut satırı grevinin NUM değeri) paha biçilmezdir.
Ve hızlı. Çok hızlı, olmayan eski bir bilgisayarda bile olmayan - SSD sürücü (biliyorum, bu sabit sürücüyü eskiden dönen disklerle yapıyorlardı. tabaklar , çılgın değil mi?)

Ücretsiz.
Taşınabilir (sıkıştırılmış zip dosyası).


Orijinal cevap Ekim 2008

alt textGnu Grep tamam

Örneğin buradan indirebilirsiniz: ( site ftp )

Tüm olağan seçenekler burada.

Bu, gawk ve xargs (--- 'den' 'içerir) ile birlikte GnuWin32 ) ve Unix'teki gibi gerçekten senaryo yazabilirsiniz!

Ayrıca bakınız yinelemeli şekilde grep yapmak için kullanıyorum seçenekler :

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

PowerShell'in Select-String cmdlet'i v1.0'da iyiydi, ancak v2.0 için çok daha iyi . PowerShell'i Windows'un en son sürümlerinde kullanmak, buradaki becerilerinizin öncelikle bir şey yüklemeden her zaman faydalı olacağı anlamına gelir.

Select-String'e yeni parametreler eklendi : Select-String cmdlet'i şimdi aşağıdaki gibi yeni parametreleri destekliyor:

  • -Context: Bu, maç satırından önce ve sonra satırları görmenizi sağlar.
  • -AllMatches: Bir satırdaki tüm maçları görmenizi sağlar (Önceden, bir satırdaki sadece ilk maçı görebiliyordunuz)
  • -NotMatch: grep'e eşdeğer -v o
  • -Encoding: karakter kodlamasını belirtmek için

Parametreleri doğru şekilde iletmek için Get-ChildItem -Recurse . için gcir ve Select-String için bir takma ad ss işlevini oluşturmak için uygun buluyorum. Yani bir yazarsın:

gcir * .txt | ss foo

30
Jay Bazuzi

Tam olarak 'grep' kategorisine girmeyebilir, ancak Windows'ta AgentRansack adlı bir yardımcı program olmadan bulamadım. Regex desteğine sahip gui tabanlı bir "dosyalarda bulma" yardımcı programıdır. Bir klasöre sağ tıklamak, "ransack .." tuşuna basmak ve aradığınızı içeren dosyaları bulmak çok kolaydır. Son derece hızlı da.

23
jasonmray

Baregrep ( Baretail de iyidir)

19
John Sheehan

Soruyu sormanızdan bu yana birkaç yıl geçti, ancak AstroGrep'i tavsiye ederim ( http://astrogrep.sourceforge.net ).

Ücretsiz, açık kaynak kodlu ve basit bir arayüze sahip. Her zaman kod aramak için kullanırım.

17
jj.

PowerShell birkaç kez bahsedildi. İşte aslında nasıl bir grepish şekilde kullanacağını:

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

Geçerli dizin ağacındaki tüm metin dosyalarını SomeString için büyük/küçük harf duyarlılıkla tekrarlı olarak arar.

Daha da iyisi, şunu çalıştırın:

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

O zaman yapın:

pgrep SomeStringToSearch *.txt

Sonra gerçekten büyülü yapmak için, --- işlevini diğer isminize PowerShell Profile ekleyin ve doğru komut satırı araçlarına sahip olmamanın acısını neredeyse donuklayabilirsiniz.

16
jslatts

Cygwin grep içerir. Tüm GNU araçları AMD Unix işleri, Cygwin'i yüklerseniz Windows'ta harika çalışır.

http://www.cygwin.com/

14
Corey Goldberg

ack Windows'ta iyi çalışır (varsa Perl ). Birçok kullanım için grep'ten daha iyi buluyorum.

13
cjm

Windows'ta Git = cmd.exe dosyasında grep

Sadece şunu öğrendim Git size bazı temel Linux komutlarını vereceğim: cat, grep, scp ve diğer tüm iyi komutlar.

Kur sonra Git bin klasörünü PATH'inize ekleyin ve cmd.exe dosyanızın temel Linux işlevselliği vardır!

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

13
Daniel Magnusson

dnGREP , Windows için açık kaynaklı bir grep aracıdır. Aşağıdakiler dahil bir dizi harika özelliği destekler:

  • Değiştirmek için geri al
  • Explorer’da klasöre sağ tıklayarak arama yapabilme
  • Fonetik arama ve xpath gibi gelişmiş arama seçenekleri
  • PDF dosya, arşiv ve Word belgesinin içinde arama yapın

IMHO, çok hoş ve temiz bir arayüze sahip :)

10
stankovski

Ben her zaman kullanıyorum WinGREP , fakat dosya bırakmama konusunda sorun yaşadım.

7
Tom Kidd

Başarıyla kullandım Win32 için GNU yardımcı programları oldukça uzun bir süredir ve win32 için kuyruk ve diğer kullanışlı gnu araçlarının yanı sıra iyi bir grep vardır. Paketlenmiş Shell'den kaçınırım ve çalıştırılabilir dosyaları doğrudan win32 komutunda kullanın.

Paketlenmiş olan Kuyruk da oldukça iyi bir uygulama.

7
user17314

Eh, GNU grep öğesinin Windows bağlantı noktasının yanında:

http://gnuwin32.sourceforge.net/

ayrıca Borland's Free C++ Compiler'da bulunan Borland's grep (GNU one 'e çok benzer) var (komut satırı araçları içeren bir yazılım).

7
Milan Babuškov

Ben Aba Search and Replace. 'nin yazarıyım. PowerGREP gibi, düzenli ifadeleri destekliyor, daha fazla kullanım için desenleri koruyor, değiştirmeler için geri al, HTML/CSS/JS/PHP için sözdizimi vurgusuyla önizleme yapıyor, UTF-8 ve UTF-16 dahil olmak üzere farklı kodlamalar.

PowerGREP ile karşılaştırıldığında, GUI daha az karmaşıktır. Aba, deseni yazarken anında arama yapmaya başlar (artan search), normal ifadeleri deneyebilir ve sonuçları hemen görebilirsiniz.

Aracımı denemek için bekliyoruz; Her soruyu cevaplamaktan mutlu olurum.

6
Peter Kankowski

Herhangi bir nag ekranı olmadan, bir klasöre sağ tıklayıp her bir dosyayı düzenli bir şekilde aramanıza izin veren Windows için ücretsiz bir grep aracı istedim.

Aşağıdaki, önceki bir yayında belirtilen findstr'e dayanan hızlı bir çözümdür.

Sabit diskinizde uzun ömürlü araçları tuttuğunuz bir yerde bir metin dosyası oluşturun. .Bat veya .cmd olarak yeniden adlandırın ve aşağıya yapıştırın:

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

Sonra SendTo klasörüne göz atın. Windows 7'de %APPDATA%\Microsoft\Windows\SendTo adresine göz atın ve toplu iş dosyasının kısayolunu bu SendTo klasörüne sürükleyin.

SendTo listesinin başında tutmak için kısayolu 1 GREP olarak değiştirdim.

Bundan sonra yapmak istediğim şeyler, o dosyayı açmak için her bir çıktı satırına tıklayabilmeniz için bir html dosyası oluşturacak bir şey aracılığıyla findstrçıktısını yönlendirmektir. Ayrıca, klasörlere kısayollarla çalıştığını sanmıyorum. Parametre incelemek ve ".lnk" içerip içermediğini görmek zorundayım.

4
Philip Beck

Seçim aracım uygun olarak adlandırılmış Windows Grep :

  • Güzel basit GUI
  • aramayı ve değiştirmeyi destekler
  • bulunan çizgilerin etrafındaki çizgileri gösterebilir
  • cSV'lerde ve sabit genişlikli dosyalarda sütunlar içinde arama yapabilir
3
John N

nxUtils Kullandığım kişi, benim için mükemmel çalışıyor ...

3
Johan

Borland's grep'i yıllarca kullandım ama eşleşmeyeceği bir kalıp buldum. Eeeks. Yıllar boyunca başka ne bulamadı? Ben grep gibi özyinelemeli basit bir metin arama değiştirme yazdım - bu kaynak forge FS.EXE var.

grep başarısız olur ...

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

windows findstr çalışır ...

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

Windows Grep aracını basit bir şekilde kullanmak istiyorsanız, web sitemden ücretsiz indirmek için hazırladığım P-Grep adlı bir tane oluşturdum: www.adjutantit.com - ana menü, indirmeler.

Windows Grep çok sayıda dosyayla ilgili sorunlar yaşıyor gibiydi, bu yüzden kendime yazdım - bu daha güvenilir görünüyor. Bir klasör seçebilir, sağ tıklayıp P-Grep'e gönderebilirsiniz. Sendto klasörü yükleme sırasında tarihlenmemiş olur.

2
John Pember

Başka bir iyi seçenek ise MSYS . Size daha üretken olmanızı sağlamak için bir sürü başka GNU yardımcı programı sunar.

2
DDay

Windows için GREP

Sonsuza dek kullanıyorum ve neyse ki hala mevcut. Süper hızlı ve çok küçük.

1
bbrown

PowerShell seçim dizgisi benzer, aynı seçenek ve anlambilim değil ama yine de güçlü.

1
Jim Deville

Yıllar boyunca günlük olarak AJC Grep kullanıyorum. Bulduğum tek büyük sınırlama, dosya yollarının 255 karakterle sınırlı olması ve yalnızca bir uyarı vermek yerine bir taneyle karşılaştığında durmasıdır. Can sıkıcı ama çok sık olmuyor.

64-bit Windows 7 Ultimate'da kullanıyorum, bu yüzden 64-bit kimlik bilgileri iyi.

1
CrispinH

Makineme Cygwin yüklendim ve Cygwin bin dizinini çevre yoluma koydum, böylece Cygwin grep, komut dosyası için şu anda grep için tüm komut dosyalarıma ihtiyacımı çözen bir komut satırında normal şekilde çalışıyor.

0
Satyrn

Çözümlerden hiçbiri aradığınız şey değilse, belki de tam olarak ihtiyacınız olanı yapan FindStr'a bir sarıcı yazabilirsiniz.

Yine de FindStr oldukça iyidir, bu yüzden bir GUI'yi yukarı çekmek (eğer istersen) ve bir kaç ekstra özellik sunmak gerekir (belirtilen bir dizgeyi içeren dosyaların sayısını bulmak için [yukarıda belirtilen] sayısını bulmak için Bul ile birleştirmek gibi).

Bu, elbette, bunun için bir gereklilik, zaman ve eğilimin olduğunu varsayar!

0
Stefan