Yanıtlar:
FINDSTR
Tüm Windows NT sınıfı işletim sistemleri ile birlikte gelen bir komut satırı aracı vardır ( FINDSTR /?
daha fazla bilgi için bir Komut İstemi penceresine yazın) Her şeyi desteklemez grep
, ancak ihtiyaçlarınız için yeterli olabilir.
netstat -n | FINDSTR 3389
select-string
Bu amaçla cmdlet'i içeren PowerShell (Windows 7 / 2008R2'de standart olarak bulunur, XP / 2003 / Vista / 2008 için isteğe bağlı) .
GnuWin Project tarafından Windows için Grep (2014-10-02: Güncel değil , aşağıdaki yorumlara bakın)
belirtildiği gibi, findstr iyi çalışıyor. misal :
C:> dir | findstr Windows
11.06.2013 09:55 Pencereler
Cygwin grep ve daha fazlası;)
Ayrıca, Windows 7 ve üzeri sürümlerde GREP benzeri işlevleri kullanmanın başka bir uygulaması olmadan kullanmanın bir yolunu daha buldum ve eski sistemlerde Powershell'i yükleyebilirsiniz.
In Powershell , Kullanıcı kullanabilirsiniz Nerede-Object o artı daha GREP'te tüm işlevselliği sağlar özelliğinin oldukça kapsamlı belirledi.
Umarım yardımcı olur.
Kimsenin FINDSTR'dan bahsetmediğine şaşırdım . Ben grep poweruser değilim, ama findstr, bazı ilkel regex desteği ile, filtre ve stdin filtre için ihtiyacım olanı yapar. Windows ve diğer tüm ürünlerle birlikte gönderilir. (Düzenleme: Birisi findstr'den bahsetti, sanırım geç oldu)
GnuWin32 bahsetmeye değer, grep, dosya, sed, groff, girinti, vb.Dahil olmak üzere tüm standart linux araçlarının yerel Win32 sürümünü sağlar.
Ve bu araçların yeni sürümleri yayınlandığında sürekli güncellenir.
Windows'da dosya arama için Far Manager'ı kullanıyorum . BSD lisanslıdır, konsolda çalışır, cmdline parametrelerini yazmak için zaman kazandırır. İşte Alt-F7 tarafından çağrılan arama iletişim kutusu.
Güncelleme: Bu soru ilk sorulduğunda doğru değildi, ancak şimdi Microsoft bir Linux için Windows Alt Sistemini Yükle'ye izin veriyor ve Windows daha sonra grep çalıştıracak. PowerShell'de çalıştırın:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Mükemmel ve çok hızlı bir dosya arama programı olan Agent Ransack , düzenli ifade aramayı destekler. Öncelikle bir GUI yardımcı programıdır, ancak bir komut satırı arabirimi de mevcuttur.
Teknik olarak grep veya komut satırı olmasa da, hem Microsoft Visual Studio hem de Notepad ++ , tam düzenli ifade desteği ile çok iyi bir Dosyalarda Bul özelliğine sahiptir. Komut satırında grep'in CygWin sürümü olmasına rağmen kendimi sık sık kullanıyorum.
Bu konuya $ 0.02 ekleyeceğim. dnGREP , geri almayı, windows explorer entegrasyonunu, PDF, fermuar, DOC ve diğer şeylerin içinde arama yapan Windows için harika bir açık kaynak grep aracıdır ...
Evet, sağlam bir GUI'ye sahip Windows PC için sadece bir program var ve bu benim için çok önemli. Bir geliştirici olarak çalışıyorum ve sahip olduğum her bilgisayarda, ilk şey XFind programını yükleyin. 1997 yılında yaratıldı ve şimdiye kadar sürüm 1.0 ve şimdiye kadar çalışıyor ve en iyisi. Sık sık bir " .cs", " .aspx", " .sct" (Visual FoxPro form kodu dosyası) veya sadece " . *" Ve XFind tüm dosyaları tarar ve bana dosyaları göstermek ve başka bir harika şey dizenin dosyada nerede olduğunu görebilirsiniz. XFind'in de bir çeşit editörü var. İkili dosya ise bulduğunuz dizeyi gösterecektir. Deneyin ve benim gibi geliştiriciyseniz sonsuza kadar kullanın.
Belli ki birçok farklı öneri aldınız.
Ücretsiz, 3. Parti Yardımcı Programı için kişisel seçimim: Ajan Ransack
Ajan Ransack İndir
Biraz kafa karıştırıcı ismine rağmen, iyi çalışıyor ve dosyaları bulmak için çeşitli şekillerde kullanılabilir.
İyi şanslar
hepsi bir arada meşgul kutusu grep / egrep / sed / awk ve MANY daha fazlasını içerir
almak:
Güncelleme: artık mevcut değil - veya biraz daha eski
Ücretli bir ürüne aldırmazsanız, PowerGREP benim favorimdir.
Son zamanlarda PowerGREP kullandık binlerce oldukça gelişmiş toplu işlemler için . PDF dosyalarının içeriğinde normal ifade araması ve PDF belgelerini büyük ölçekte değiştirme dahil.
Manuel emek zaman kazanmak istiyorsanız, para değer. Bence satın almadan önce deneyebilirsiniz.
Yukarıda belirtildiği gibi, gnuwin32 projesi grep'in Windows CLI sürümüne sahiptir.
Grafik arayüzlü bir şey istiyorsanız, (açık kaynak) aracı AstroGrep'i tavsiye ederim .
Oak Road Systems tarafından sunulan ticari bir grep programı var .
PowerGrep'i tavsiye ederim
Birkaç yıl önce bir e-keşif projesi yapmak zorunda kaldım. Bunu buldum fisdstr
bazı sınırlamaları vardı en başta fisdstr sonunda başarısız olacağını
komut dosyası birkaç düzine arama terimi / kelime öbeği kullanarak binlerce dosyada arama yapmak zorunda kaldı.
Cygwin'in grep'i çok daha iyi çalıştı , sık sık boğulmadı, ama sonuçta PowerGrep'e gittim çünkü grafik arayüz, ne zaman ve nerede çöktüğünü söylemeyi çok daha kolay hale getirdi ve ayrıca tüm koşullarda ve çıktıda düzenlemek gerçekten kolaydı İstedim. Sonuçta PowerGrep üçünün en güveniliriydi .
Bunun biraz eski bir konu olduğunu biliyorum, ama burada yapabileceğiniz başka bir şey var. İnternet erişimi ve oldukça sınırlı boş disk alanı olmayan bir geliştirici VM'si üzerinde çalışıyorum, bu yüzden üzerine kurulu java'yı kullandım.
Normal ifade eşleşmelerini konsola yazdıran küçük java programını derleyin. Kavanozu sisteminizde bir yere koyun, yürütmek için bir toplu iş oluşturun ve klasörü PATH değişkeninize ekleyin:
JGrep.java:
package com.jgrep;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class JGrep {
public static void main(String[] args) throws FileNotFoundException, IOException {
int printGroup = -1;
if (args.length < 2) {
System.out.println("Invalid arguments. Usage:");
System.out.println("jgrep [...-MODIFIERS] [PATTERN] [FILENAME]");
System.out.println("Available modifiers:");
System.out.println(" -printGroup - will print the given group only instead of the whole match. Eg: -printGroup=1");
System.out.println("Current arguments:");
for (int i = 0; i < args.length; i++) {
System.out.println("args[" + i + "]=" + args[i]);
}
return;
}
Pattern pattern = null;
String filename = args[args.length - 1];
String patternArg = args[args.length - 2];
pattern = Pattern.compile(patternArg);
int argCount = 2;
while (args.length - argCount - 1 >= 0) {
String arg = args[args.length - argCount - 1];
argCount++;
if (arg.startsWith("-printGroup=")) {
printGroup = Integer.parseInt(arg.substring("-printGroup=".length()));
}
}
StringBuilder sb = new StringBuilder();
try (BufferedReader br = new BufferedReader(new FileReader(filename))) {
sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
sb.append(System.lineSeparator());
line = br.readLine();
}
}
Matcher matcher = pattern.matcher(sb.toString());
int matchesCount = 0;
while (matcher.find()) {
if (printGroup > 0) {
System.out.println(matcher.group(printGroup));
} else {
System.out.println(matcher.group());
}
matchesCount++;
}
System.out.println("----------------------------------------");
System.out.println("File: " + filename);
System.out.println("Pattern: " + pattern.pattern());
System.out.println("PrintGroup: " + printGroup);
System.out.println("Matches: " + matchesCount);
}
}
c: \ jgrep \ jgrep.bat (jgrep.jar ile birlikte):
@echo off
java -cp c:\jgrep\jgrep.jar com.jgrep.JGrep %*
ve PATH ortam değişkeninin sonuna c: \ jgrep ekleyin .
Şimdi jgrep "expression" file.txt
her yerden arayın .
Bir değiştirici ekledim ve şöyle çağırdım, ifademden bazı belirli grupları yazdırmam gerekiyordu jgrep -printGroup=1 "expression" file.txt
.
Eski bir soru olduğunu fark ettim ama bir cevap arayan bu yazıyla karşılaştım. Bir tane buldum ve toplu internet belleği için buraya ekledim
Powershell: Select-String Modülü: Microsoft.PowerShell.Utility
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/select-string
ve gelişmiş örnekler içeren bilgilendirici bir blog yazısı: "PowerShell'de" nasıl grep "yapılır? https://antjanus.com/blog/web-development-tutorials/how-to-grep-in-powershell/
Bu blog gönderisinden basit bir örnek: cat package.json | Select-String -Pattern web paketi ls ./src/components/ | Select-String -Pattern Görünümü
C:> kedi post.md | Select-String -Pattern "^ \ w *:"
Cygwin kullan ...
32 ve 64 bit sürümleri vardır
ve Windows 2000'den (*)
Windows 10 veya Server 2019'a kadar iyi çalışır
Cygwin'i uzun süre kullanıyorum ...
ve son zamanlarda Windows-Linux-Subsystems ile değiştirmeye çalıştım ...
uzun süre değil ...
Hızla tekrar Cygwin'e gittim ...
çok daha esnek, kontrol edilebilir ve zengin ...
ayrıca daha az müdahaleci ...
sadece \ bin yoluna ekleyin ...
ve Windows / Batch / Powershell ...
veya bir DOS-Box ... veya Powershell-Box içindeki herhangi bir yazılımı kullanabilirsiniz ...
Ayrıca
gerçekten nginX veya PHP gibi çalışan bir sürü harika paket yükleyebilirsiniz ... Hatta IIS'imde Cygwin PHP paketini kullanıyorum ...
Bir bonus wou da bir bash kabuğundan kullanabilirsiniz ...
(Bence bu orijinal niyet ;-))