Yanıtlar:
(Hala PowerGREP hayranıyım , ama artık kullanmıyorum.)
Zaten bahsettiğinizi biliyorum, ama PowerGREP harika .
Favori özelliklerimden bazıları:
Ş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.)
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 *
GrepWin Ücretsiz ve açık kaynak kodlu (GPL)
Tortoisesvn adamlardan biri tarafından yazılmış grepWin kullanıyorum. Windows'da iş yapıyor mu ...
Temmuz 2013 Güncellemesi:
Şimdi Windows üzerinde her zaman kullandığım başka bir grep aracı AstroGrep :
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
Gnu 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" *
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 gcir
için Get-ChildItem -Recurse .
doğru parametreleri aktarmak için smarts ile, ve bir takma ad ss
için Select-String
. Yani bir yazım var:
gcir * .txt | ss foo
ls . *.txt -r| sls -ca "SomeString"
sls
için Select-String
gerçekten çok uzun?
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ı.
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.
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ı SomeString
bü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.
Cygwin grep içerir. Cygwin'i yüklerseniz tüm GNU araçları amd Unix işleri Windows'da harika çalışır.
Windows'ta Git = cmd.exe dosyasında grep
Git'i kurmanın size bazı temel Linux komutlarını vereceğini öğrendim : cat, grep, scp ve diğer tüm iyi komutlar.
Install bin klasörünü yükleyin ve PATH'nize ekleyin ve cmd.exe dosyanız temel Linux işlevselliğine sahiptir!
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:
IMHO, çok güzel ve temiz bir arayüze sahip :)
Her zaman WinGREP kullanıyorum , ancak dosyaları bırakmamayla ilgili sorunlar yaşadım.
GNU grep'in Windows bağlantı noktasının yanında:
http://gnuwin32.sourceforge.net/
Ayrıca Borland'ın ücretsiz C ++ Derleyicisi'nde (komut satırı araçları ile ücretsiz bir yazılım) mevcut olan Borland'ın grep'i (GNU'ya çok benzer) var.
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.
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.
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, findstr
bir ö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\SendTo
toplu iş dosyasının bir kısayoluna gözatın ve bu SendTo klasörüne sürükleyin.
1 GREP
SendTo 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.
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]
Seçim aracım uygun şekilde adlandırılmış Windows Grep :
PowerShell'in seçim dizesi benzerdir, aynı seçenekler ve anlambilim değildir, ancak yine de güçlüdür.
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.
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.
Sonsuza kadar kullanıyorum ve neyse ki hala kullanılabilir. Süper hızlı ve çok küçük.
Çö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!
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.