Esiste un'utilità simile a grep
disponibile dal prompt dei comandi di Windows oppure esiste uno strumento di terze parti?Esiste un'utilità di corrispondenza modelli come GREP in Windows?
risposta
Ho anche trovato un altro modo di utilizzare la funzionalità GREP like in Windows 7 e versioni successive senza alcuna applicazione aggiuntiva da installare e su sistemi meno recenti è possibile utilizzare l'installazione di PowerShell.
In Powershell, l'utente può utilizzare Where-Object ha un set abbastanza completo di funzionalità che fornisce tutte le funzionalità di GREP plus more.
Hope It helps.
Se si installa Cygwin o Mingw, quindi si.
Altrimenti, non per quanto ne so.
Grep for Windows by GnuWin Project (2014-10-02: E 'superata, vedi commenti qui sotto)
v'è uno strumento da riga di comando chiamato FINDSTR
che viene fornito con tutti i sistemi operativi Windows NT-classe (tipo FINDSTR /?
in una finestra del prompt dei comandi per maggiori informazioni) Non supporta tutto ciò che è grep
ma potrebbe essere sufficiente per le tue esigenze.
Grazie! Non è grep, ma mi piace essere in grado di funzionare senza installare software aggiuntivo sulle macchine di altre persone e questo me lo permetterà. – sage
Puoi anche usarlo con il simbolo pipe, ad es. 'netstat -n | FINDSTR 3389' – harperville
@sage, con un po 'di creatività, ** findstr ** funziona esattamente come grep. Fare riferimento a questo [grep per esempio Windows] (http://www.mkyong.com/linux/grep-for-windows-findstr-example/). – mkyong
PowerShell (incluso come standard su Windows 7/2008R2, opzionale per XP/2003/Vista/2008) che include il cmdlet select-string
per questo scopo.
Mentre Select-String (alias: sls) utilizza espressioni regolari, non supporta alcune funzionalità di base come la ricorsione delle directory. Per questo è necessario combinare più comandi di PowerShell. Come "dir -R -Include * .txt | sls"^My Regex String $ " – yzorg
Se non ti dispiace un prodotto a pagamento, PowerGREP è il mio preferito.
Abbiamo recentemente utilizzato PowerGREP per alcune operazioni di massa abbastanza avanzate su migliaia di file. Inclusione dell'espressione regolare nel contenuto dei file PDF e modifica dei documenti PDF in grande scala.
Ne vale la pena se si vuole risparmiare tempo da manuel manodopera. Puoi provarlo prima di acquistarlo, penso.
Se si deve usare nuda di Windows, quindi in aggiunta all'opzione PowerShell osservato in precedenza, è possibile utilizzare VBScript, che ha il sostegno RegEx decente.
MS ha anche una discreta area di scripting su Technet con un sacco di esempi per gli amministratori.
Sono sorpreso che nessuno abbia menzionato FINDSTR. Non sono grep poweruser, ma findstr fa ciò di cui ho bisogno, filtra i file e lo stdin, con un supporto di regex primitivo. Navi con Windows e tutto il resto. (Edit: Beh qualcuno ha fatto menzione findstr, È tardi immagino)
"nessuno ha menzionato FINDSTR" - la "migliore" risposta ha un anno in più e menziona FINDSTR ... – chiccodoro
GnuWin32 è degno di nota, fornisce versione nativa Win32 di tutti gli strumenti standard di Linux, tra cui grep, lima, sed, Groff, trattino, ecc
Ed è costantemente aggiornato quando vengono rilasciate nuove versioni di questi strumenti.
Ora sembra essere disponibile su choclatey, quindi _cinst GnuWin32_ funziona per installarlo rapidamente –
Nel reskit di Windows è presente un'utilità denominata "qgrep". Potresti averlo già sulla tua scatola. ;-) Viene anche con il comando "coda", grazie a dio!
Sebbene non sia tecnicamente grep né riga di comando, sia Microsoft Visual Studio che Notepad++ dispongono di un'ottima funzione Trova nei file con supporto completo delle espressioni regolari. Mi trovo a usarli spesso anche se ho la versione CygWin di grep disponibile sulla riga di comando.
Basta provare l'utilità java di LikeGrep. Potrebbe aiutarti in moltissimi casi. Come desideri, può anche sostituire del testo, trovato nei file. Garantisce il suo lavoro su file di grandi dimensioni (testati fino a 8 Gb)
Come accennato in precedenza, il progetto gnuwin32 ha una versione CLP di Windows di grep.
Se si desidera qualcosa con un'interfaccia grafica, si consiglia lo strumento (open-source) AstroGrep.
È passato un po 'di tempo da quando li ho usati, ma Borland (ora Embarcadero) includeva una riga di comando grep con il compilatore C/C++. Per un certo periodo di tempo, hanno reso disponibile la versione 5.5 come free download dopo la registrazione.
Aggiungerò il mio $ 0.02 a questo thread. dnGREP è un ottimo strumento grep open source per Windows che supporta l'annullamento, l'integrazione di Windows Explorer, la ricerca all'interno di PDF, zip, DOC e molte altre cose ...
C'è una utility commerciale di grep disponibile da Oak Road Systems.
Un'utilità di ricerca file eccellente e molto veloce, Agent Ransack, supporta la ricerca di espressioni regolari. È principalmente un'utilità GUI, ma è disponibile anche un'interfaccia della riga di comando.
come accennato, findstr funziona bene. esempio:
C:> dir | findstr di Windows
11.06.2013 21:55 di Windows
l'all-in-one busybox contiene grep/egrep/sed/awk e molte
ottenere da:
o giù di lì Mi anziani
perché ottengo downvotes quando l'interrogante chiede strumenti di terze parti? – Bernhard
Su Windows che uso Far Manager per la ricerca di file. La licenza BSD, funziona in console, consente di risparmiare tempo durante la digitazione dei parametri di cmdline. Ecco la sua finestra di ricerca invocata da Alt-F7.
vi consiglio PowerGrep
ho dovuto fare un progetto di e-discovery diversi anni fa. Ho scoperto che fisdstr
avuto alcune limitazioni, soprattutto fisdstr sarebbe poi fallire
lo script ha dovuto cercare tra migliaia di file utilizzando un paio di dozzine di termini di ricerca/frasi.
grep di Cygwin ha funzionato molto meglio, non soffocare spesso, ma alla fine sono andato a PowerGrep perché l'interfaccia grafica ha reso molto più facile da dire quando e dove si schiantò, e anche è stato davvero facile da modificare in tutti i condizionali e l'output che volevo. In definitiva PowerGrep era il più affidabile dei tre.
Sì, esiste un solo programma per PC Windows con una GUI solida ed è essenziale per me. Lavoro come sviluppatore e su ogni computer che ho avuto, prima cosa installare il programma XFind. È stato creato nel 1997 e fino ad ora la versione è 1.0 e fino ad ora funziona ed è la migliore. Spesso ho bisogno di cercare una stringa in ".cs", " .aspx", ".sct" (file di codice modulo Visual FoxPro) o semplicemente ". *" E XFind analizza tutti i file e mostra i file e un'altra cosa fantastica è che puoi cercare dove si trova la stringa nel file. XFind ha anche una sorta di editor. Se è un file binario, ti mostrerà la stringa trovata. Provalo e usalo per sempre se sei uno sviluppatore come me.
Hai ovviamente ricevuto molte raccomandazioni diverse.
La mia scelta personale per un libero, 3 ° Utility Party è: Agente Ransack
Agent Ransack Download
Nonostante il nome un po 'di confusione, funziona bene e può essere utilizzato in una varietà di modi per trovare i file.
Good Luck
So che è un po 'argomento vecchio, ma, qui è un'altra cosa che puoi fare. Lavoro su una VM di sviluppatori senza accesso a Internet e spazio su disco libero abbastanza limitato, quindi ho utilizzato Java installato su di esso.
Compilare un piccolo programma java che stampa le corrispondenze regex sulla console. Mettere il vaso da qualche parte sul vostro sistema, creare un batch per eseguirlo e aggiungere la cartella alla variabile PATH:
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 (insieme a jgrep.jar):
@echo off
java -cp c:\jgrep\jgrep.jar com.jgrep.JGrep %*
e aggiungere c: \ jgrep alla fine della variabile d'ambiente PATH.
Ora chiama semplicemente jgrep "expression" file.txt
da qualsiasi luogo.
Avevo bisogno di stampare alcuni gruppi specifici dalla mia espressione così ho aggiunto un modificatore e lo chiamavo come jgrep -printGroup=1 "expression" file.txt
.
- 1. Corrispondenza rapida di modelli bidimensionali
- 2. Grep per più modelli su più file
- 3. multipla ricerca grep/ignore modelli
- 4. corrispondenza di una stringa con varie possibilità usando grep
- 5. Funzioni di corrispondenza dei modelli in OCaml
- 6. Corrispondenza file avanzata di Windows
- 7. Grep solo la prima corrispondenza e stop
- 8. Esistono funzioni di corrispondenza dei modelli in Python come questo?
- 9. Come grep ed eseguire un comando (per ogni corrispondenza)
- 10. Come utilizzare grep() per trovare la corrispondenza esatta
- 11. Informazioni su 'grep -f': modello di corrispondenza con file
- 12. di Windows ricorsiva grep comando-line
- 13. corrispondenza una linea con un asterisco letterale "*" in grep
- 14. Corrispondenza di modelli in un elenco in Scala
- 15. Esiste un debugger di modelli?
- 16. corrispondenza regolare e sostituire più modelli
- 17. Equivalente di ps -A | grep -c processo in Windows?
- 18. Visualizza nome file prima della corrispondenza riga (grep)
- 19. Perché il mio Perl grep non restituisce la prima corrispondenza?
- 20. Prestazioni OpenCV sulla corrispondenza dei modelli
- 21. mentre grep più file, come posso fermarmi dopo la prima corrispondenza?
- 22. Uso di grep per ottenere la WORD successiva dopo una corrispondenza in ogni riga
- 23. Esiste un'utilità C# per la corrispondenza dei modelli negli alberi (sintassi sintattica)?
- 24. Corrispondenza di modelli con Scala Tipo di mappa
- 25. R grep: abbina una stringa a più modelli
- 26. Evitare la corrispondenza di modelli nidificati (possibilmente con forse Monade)
- 27. Notazione senza punto, ricorsione e corrispondenza di modelli
- 28. Come ottenere linee prima e dopo la corrispondenza da java 8 stream come grep?
- 29. grep con -f come in PHP
- 30. Valori delle variabili per la corrispondenza dei modelli
Questo è il grep GnuWin32.Non è stato aggiornato alla versione più recente di grep. Per questo dovrai ottenere la versione di Cygwin. Vedi il commento qui sotto. – JPaget
-1 per la risposta solo al collegamento. – Travis
Ma busybox è in fase di sviluppo ... http://stackoverflow.com/a/22634389/1498669 – Bernhard