Windows için iyi grep araçları nelerdir? [kapalı]


289

Windows için grep araçlarına ilişkin herhangi bir öneriniz var mı? İdeal olarak 64 bit işletim sisteminden faydalanabilecek olanlar.

Bildiğim Cygwin elbette, hem de bulduk PowerGREP ama orada herhangi gizli mücevherler olup olmadığını merak ediyorum?

Yanıtlar:


204

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


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

Zaten bahsettiğinizi biliyorum, ama PowerGREP harika .

Favori özelliklerimden bazıları:

  • PowerGREP'i çalıştırmak için bir klasörü sağ tıklayın
  • Normal ifadeler veya gerçek metin kullanma
  • Eklenecek ve hariç tutulacak dosyalar için joker karakterler belirtme
  • Ara ve değiştir
  • Önizleme modu güzeldir, çünkü ne yapmak istediğinizi değiştirdiğinizden emin olabilirsiniz.

Şimdi diğer grep araçlarının yukarıdakilerin hepsini yapabileceğini anlıyorum. Sadece PowerGREP, tüm işlevselliği kullanımı kolay bir GUI'ye paketliyor.

Size RegexBuddy'yi getiren ve eşyalarını sevmenin ötesinde hiçbir bağlantım olmayan aynı harika insanlardan . (RegexBuddy'nin temel bir grep sürümü (Windows için) içerdiği ve PowerGREP'den çok daha düşük maliyetli olduğu unutulmamalıdır.)


Ek çözümler

Mevcut Windows komutları

Windows'ta Linux komut uygulamaları

Grafik arayüzlü Grep araçları

Ek Grep araçları


4
Kullanımı kolay ve PowerGREP kadar tam özellikli bir açık kaynak grep gui bulmak isterdim ama henüz bir tane bulamadım :). Cygwin yüklü ve biraz grep kullanıyorum.
Mark Biek

21
@Wells - Windows'ta düz eski * nix grep, Cygwin veya GnuWin32 aracılığıyla ücretsizdir. FindStr ve Find ayrıca Windows ile birlikte gönderilir. Harika bir GUI, değiştirme yeteneği ve entegre geri almanın yanı sıra diğer birçok özellikle de uğraşın ... evet ... bu size biraz daha pahalıya mal oluyor.
Mike Clark

11
@Wells, @Mike Clark, @Mark Biek: Bu cevap gönderildiğinde Windows için hoş ücretsiz GUI grep araçlarının bulunmamasının mümkün olduğunu düşünüyorum, ancak artık doğru değil. grepWin bu cevapta listelenen tüm özelliklere sahiptir ve şimdi başka rakipler de olabilir.
John Y

9
@Wells, bir Grep aracı 159 $ olduğu için Windows'dan nefret ediyor, paspaslar pahalı olduğu için arabalardan nefret ediyor.
md1337

9
@Wells ve upvoters: Sığır eti nedir? Windows için diğer birkaç GREP aracı, unix / linux için olduğu kadar ücretsizdir. Gerçekten de, Windows ekosistemiyle ilgili sevdiğim şey bu - eğer ana kriteriniz bu ise çok fazla ücretsiz, VE ekosistem genellikle geliştiricilere PowerGREP gibi genişletilmiş işlevsellikleri keşfetmek için ödeme yapmayı destekliyor. PowerGREP herkesin çayı olmayabilir (bazen kullanıcı arayüzü ezici olabilir), ancak özenli olmasının faydası vardır.
gwideman

322

FINDSTR oldukça güçlü, düzenli ifadeleri destekliyor ve zaten tüm Windows makinelerinde olmanın avantajlarına sahip.

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 özyinelemeli arama yapmak içinfindstr /s text_to_find *


2
FINDSTR'ın eksikliği, yalnızca dizeyi içeren satır sayısını görüntüleme seçeneğidir. (grep -c gibi) Buna ihtiyacınız varsa FIND / C kullanabilirsiniz.
Ra.

2
FINDSTR gücünün geri gelmesini istiyorsanız (ve deseniniz normal ifade değilse), her zaman küçük bir tekrarla iki komutu birbirine zincirleyebilirsiniz: findstr / s ".ini" * .rlog | find / c ".ini"
Ray Hayes

10
Findstr tam RegEx desteğine sahip değildir.
09:36, caltuntas

5
.. asıl gönderi özellikle RegEx'i istemiyordu!
Ray Hayes

24
Tamam findstr grep değil, bazı yorumcular işaret etti. Ama bunun var olduğunu bilmiyordum, bu yüzden + 1'ledim iyi efendim!
T.Rob

107

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

resim açıklamasını buraya girinTortoisesvn adamlardan biri tarafından yazılmış grepWin kullanıyorum. Windows'da iş yapıyor mu ...

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


2
Ve ücretsizdir ve PowerGrep'in düzgün bir şekilde yapamadığı gizli dizinlerde / dosyalarda arama yapabilir ...
Jérôme Verstrynge

3
Bir komut satırı arabirimi yok gibi görünüyor.
Andreas Haferburg

2
İyi ama sadece bir bağlam satırı veriyor ve tüm içeriği bitirene kadar bu bağlamı göremiyorsunuz.
Matthew Lock

2
Güzel ve basit bir araç gibi görünüyor. Ama sonuçlara bir dosyada ihtiyacım vardı ve bana dışa aktarma seçeneği vermiyor gibi görünüyor. Bu nedenle sadece AstroGrep ile gittim.
Ross

pdf içinde arama yapmaz
JinSnow 13:05

53

Temmuz 2013 Güncellemesi:

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

AstroGrep mükemmelliği

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

Ücretsizdir.
Taşınabilir (açmak için basit zip arşivi).


Orijinal cevap Ekim 2008

alternatif metinGnu Grep iyi

Örneğin buradan indirebilirsiniz: ( site ftp )

Tüm olağan seçenekler burada.

Bu, gawk ve xargs ( GnuWin32'den 'find' içerir ) ile birlikte ve gerçekten Unix'teymiş gibi komut dosyası oluşturabilirsiniz!

Ayrıca yinelemeli olarak grep için kullandığım seçeneklere bakın :

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

Windows sürümü 10 Mb'lık metin dosyalarımı işleyemediği için Gnu Grep'in yerini almaya başladım. Sadece orada oturuyor ve hiçbir şey bulmamış gibi yapıyor. Dosya boyutunu kesersem çalışmaya başlar.
Peter M

Merhaba VonV, "olağan seçenekler" bağlantınız oldu: 404 - Sayfa Bulunamadı. Lütfen yanıtınızı düzenlemeyi düşünün.
eeerahul

1
@eeerahul bağlantı geri yüklendi ve örnek eklendi
VonC

AstroGrep güzel ama maalesef şu anda benim için anlaşma kırıcı olan 'Bul ve Değiştir' özelliği yok
asukasz Wiatrak

"Değiştir" işlevinden yoksundur
XristosK

30

PowerShell'in Select-String cmdlet'i v1.0'da iyiydi, ancak v2.0 için önemli ölçüde daha iyi . PowerShell'in Windows'un son sürümlerinde yerleşik olması, burada becerilerinizin ilk önce bir şey yüklemeden her zaman yararlı olacağı anlamına gelir.

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

  • -Context: Bu, maç çizgisinden önceki ve sonraki çizgileri görmenizi sağlar
  • -AllMatches: bir satırdaki tüm eşleşmeleri görmenizi sağlar (Daha önce, bir satırdaki yalnızca ilk eşleşmeyi görebiliyordunuz)
  • -NotMatch: grep -vo öğesine eşdeğerdir
  • -Encoding: karakter kodlamasını belirtmek için

Bunun bir işlevi oluşturmak amaca bulmak gciriçin Get-ChildItem -Recurse .doğru parametreleri aktarmak için smarts ile, ve bir takma ad ssiçin Select-String. Yani bir yazım var:

gcir * .txt | ss foo


3
Grep -R eşdeğeri örneği: Get-ChildItem -recurse -include * .txt | Select-String -CaseSenstive "SomeString"
jslatts 11:11

6
PS'de sunulan işlevselliği çok seviyorum, ama neden her komutun ortalama COBOL programından daha uzun olması gerekiyor?
evilcandybag

3
@evilcandybag: Parametre adlarında otomatik tamamlama da dahil olmak üzere büyük otomatik tamamlama sayesinde, PowerShell komut satırlarını yazmak hızlı ve kolaydır ve sonucu okuyabilirim.
Jay Bazuzi

1
@jslatts: ya da takma adları ve kısmi parametre adlarını kullanabilirsiniz ve ls . *.txt -r| sls -ca "SomeString"
Rynant

1
Varolan takma mı slsiçin Select-Stringgerçekten çok uzun?
Joey

23

Tam olarak 'grep' kategorisine girmeyebilir, ancak AgentRansack adlı bir yardımcı program olmadan Windows'a ulaşamadım . Regex desteği ile gui tabanlı bir "dosyalarda bul" yardımcı programıdır. Bir klasöre sağ tıklamak, "ransack .." tuşuna basmak ve aradığınızı içeren dosyaları bulmak çok basit. Çok hızlı.


Maalesef, ilgili satırda harici metin düzenleyici açamıyor.
Pawel Furmaniak

1
Şimdiye kadar kullandığım en iyi grep aracını Filelocator Pro adlı ücretli sürümünü deneyin.
Ian Stanway

Filelocator pro değiştirmeler yapıyor mu?
alimack

Çok güzel bir arayüzü var, değiştirmeler yapıyor mu?
alimack

Ayrıca şimdi Filelocator lite
alimack

19

Baregrep ( Baretail de iyidir)


win7 64 bit üzerinde çalışmıyor; (
Daniel Magnusson

Eminim bunu şimdiye kadar düzelttiler. BareTail'e karşı ana şikayetim, ilgisiz satırları gizlemek için (yalnızca renk değil) günlüğü "filtreleyemezsiniz".
Ed Brannin

1
Ücretsiz sürümü (BareTail) ile değil, BareTailPro ile filtreleyebilir ve arama yapabilirsiniz.
Kil

Ben çok emin onlar ediyorum değil o 2006 yılından bu yana güncellenen henüz beri, artık o sabit
alldayremix

4
Burada Windows 7 Pro 64bit üzerinde iyi çalışıyor.
cb88

17

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

Ücretsiz, açık kaynaklıdır ve basit bir arayüze sahiptir. Her zaman kod aramak için kullanıyorum.


ancak
pdf'de

16

PowerShell'den birkaç kez bahsedildi. Aslında bunu nasıl acımasız bir şekilde kullanacaksınız:

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

Geçerli dizin ağacındaki tüm metin dosyalarını SomeStringbüyük / küçük harfe duyarlı 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 }

Sonra şunları yapın:

pgrep SomeStringToSearch *.txt

Daha sonra gerçekten büyülü hale getirmek için, PowerShell Profilinize işlev takma adını ekleyin ve neredeyse uygun komut satırı araçlarına sahip olmamanın acısını sıkıcı hale getirebilirsiniz.





10

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

  • Değiştirmek için geri al
  • Explorer'daki klasöre sağ tıklayarak arama yapabilme
  • Fonetik arama ve xpath gibi gelişmiş arama seçenekleri
  • PDF dosyaları, arşivler ve Word belgelerinde arama yapma

IMHO, çok güzel ve temiz bir arayüze sahip :)


1
Önerilen grep araçlarından birkaçını denedim ve benim için dnGrep kazanıyor.
flobadob

Pdf içinde arama ama epub değil
JinSnow

Düzenleme: epub arayabilir. Bunu şu şekilde eklemelisiniz: github.com/dnGrep/dnGrep/issues/200
JinSnow

7

Her zaman WinGREP kullanıyorum , ancak dosyaları bırakmamayla ilgili sorunlar yaşadım.


2
Wingrep'i birkaç yıldır kullandım, dizin seçim kutularının çok küçük olması hariç
Cruachan

Lisans bir 30day eval sonra bunun için ödeme gerektirir.
çip

Birçok grep aracının yapmadığı hoş bir özelliğe sahiptir, eşleşmeleri tersine çevirme yeteneği. İçinde bir şey olmayan HTML dosyaları bulmak için kullanışlı, diyelim.
Matthew Lock

WinGrep'in çok can sıkıcı bir özelliği olduğunu fark ettim. Yapılan tüm eşleşmelerde bir dosya kilidi tutuyor gibi görünüyor ve bu nedenle Windows Gezgini'nde bu dosyalardan birini silmeye çalışırsanız WinGrep'i kapatana kadar yapamazsınız.
Matthew Lock

Arama sonuçlarında arama yapabilir, listeyi daha da daraltırsa, bu benim için ideal bir araç olurdu.
Shamil


7

Başarılı bir şekilde Win32 için GNU yardımcı programları kullandım ve iyi bir grep yanı sıra kuyruk ve win32 için diğer kullanışlı gnu araçlar vardır. Ben paketlenmiş kabuk kaçının ve sadece win32 komut isteminde executables kullanın.

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


6

Ben Aba Search and Replace'nin yazarıyım. PowerGREP gibi, düzenli ifadeleri destekler, daha fazla kullanım için kalıpları kaydeder, değiştirmeler için geri alır, HTML / CSS / JS / PHP için sözdizimi vurgulamasıyla önizleme, 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, kalıbı yazarken (artımlı arama) anında aramaya başlar , böylece normal ifadelerle deneme yapabilir ve sonuçları hemen görebilirsiniz.

Sen benim aracı denemek için bekliyoruz; Soruları cevaplamaktan mutluluk duyarım.


4

Windows için, bir klasörü sağ tıklamanız ve herhangi bir nag ekranı olmadan her dosyanın regex aramasını yapmanıza izin veren ücretsiz bir grep aracı istedim.

Aşağıda, findstrbir önceki gönderide belirtilenlere dayanan hızlı bir çözüm yer almaktadır .

Sabit sürücünüzde uzun ömürlü araçları sakladığınız bir yerde bir metin dosyası oluşturun. .Bat veya .cmd olarak yeniden adlandırın ve aşağıdakine 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"

Ardından SendTo klasörüne göz atın. Windows 7'de %APPDATA%\Microsoft\Windows\SendTotoplu iş dosyasının bir kısayoluna gözatın ve bu SendTo klasörüne sürükleyin.

1 GREPSendTo listesinin en üstünde tutmak için kısayolu yeniden adlandırdım .

Bundan sonra yapmak istediğim findstrşey, bu dosyayı açmak için her çıktı satırına tıklayabilmeniz için bir html dosyası oluşturacak bir şeyin içinden çıktının borusudur . Ayrıca, klasörlere kısayollarla çalıştığını sanmıyorum. Ben parametre incelemek ve ".lnk" içerip içermediğini görmek gerekir.



3

Borland'ın grepini yıllarca kullandım, ancak sadece eşleşmeyecek bir desen buldum. Eeeks. Yıllar boyunca başka ne bulamadı? Grep gibi özyineleme yapan basit bir metin arama değiştirme yazdım - bu kaynak forge üzerinde FS.EXE.

grep başarısız ...

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

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

  • güzel basit GUI
  • arama 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

Ne yazık ki üretilmiyor, yıllardır kullandım.
alimack

@alimack Evet, bunu son zamanlarda kendim fark ettim. Bununla birlikte, araç hala çalışır (en azından Windows 7'de) ve yine de CNET'in beğenilerinden indirilebilir. Utanç verici, oldukça güzel bir araçtı.
John N

Bir yedek arıyor, PowerGREP umut verici ama çirkin bir arayüz ve pahalı. Denenmiş grepWin, çok çıplak kemikler, Filelocator metnin yerini almıyor gibi görünüyor. Öneriler hoş geldiniz - özellikle değiştirmeyi taahhüt etmeden önce sonuçları görmek gibi.
alimack

2

PowerShell'in seçim dizesi benzerdir, aynı seçenekler ve anlambilim değildir, ancak yine de güçlüdür.


2

Basit bir Windows Grep aracı kullanmak istiyorsanız, web sitemden ücretsiz olarak indirebildiğim P-Grep adlı bir tane oluşturdum: www.adjutantit.com - ana menü, indirmeler.

Windows Grep çok sayıda dosyayla ilgili sorunlara sahip gibi görünüyordu, bu yüzden kendim 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ü kurulum sırasında düzeltilmiyor.


2

Başka bir iyi seçenek MSYS'dir . Daha üretken olmanızı sağlamak için bir dizi başka GNU yardımcı programı sunar.


1

AJC Grep'i yıllardır her gün 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 tanesiyle karşılaştığında durmasıdır. Bu sinir bozucu ama çok sık gerçekleşmiyor.

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


1

Windows için GREP

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


Bir GUI bile var mı? Sadece komut satırından kullanıyorum, böylece hiç fark etmedim.
bbrown

Maçtan önce ve sonra çizgileri göstermenin basit bir yolunu arıyordum ve bunu yaptım. Örneğin: 'netstat -anb | grep -B1 22 ', hangi programların 22 numaralı bağlantı noktasını dinlediğini bilmek için
Jan Ehrhardt

0

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

FindStr zaten oldukça iyi, bu yüzden sadece bir GUI'yi çalıyor olmalı (isterseniz) ve birkaç ekstra özellik sunmalıdır (belirtilen bir dize içeren dosya sayısını bulmak için Bul ile birleştirmek gibi [yukarıda belirtilen]).

Bu, elbette, bunu yapmak için gereksiniminiz, zamanınız ve eğiliminiz olduğunu varsayar!


0

Ben Cygwin , benim makinede yüklü ve benim çevre yolundaki Cygwin bin dizini koymak anda grep için tüm komut dosyası ihtiyaçlarını çözen bir komut satırında normal gibi Cygwin'ın grep eserleri yüzden.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.