argomento stringa multiple del comando DOS di findstr


17
findstr /v "black"  File1.txt

Sopra il comando DOS verrà visualizzato il contenuto di "File1.txt" che non corrisponde alla stringa "nero".

Come modificare questo comando, se devo filtrare le parole "nero" e "bianco"?


1
Il findstr lo strumento non fa parte di MS-DOS. Viene fornito con Windows (XP +?). Penso che tu intenda "strumento da riga di comando" invece di "comando DOS".
Michel de Ruiter

Risposte:


23

Come faccio a filtrare le parole "nero" e "bianco"?

Il seguente comando mostrerà tutte le linee che contengono "black" "white":

findstr /v "black white" blackwhite.txt

Il seguente comando mostrerà tutte le linee che contengono "black" O "white":

findstr "black white" blackwhite.txt

Il seguente comando mostrerà tutte le linee che contengono ESATTAMENTE "black white ":

findstr /c:"black white" blackwhite.txt

Il seguente comando mostrerà tutte le linee che contengono "black" E "white":

findstr "white" blackwhite.txt | findstr "black"

Gli appunti:

  • Quando la stringa di ricerca contiene più parole, separate da spazi, quindi findstr restituirà le righe che contengono una parola (OR).

  • Una ricerca letterale ( /C:string ) invertirà questo comportamento e consentirà la ricerca di una frase o frase. Una ricerca letterale consente anche la ricerca di caratteri di punteggiatura.

Esempio di file di dati (blackwhite.txt):

red
black
white
blue
black white
black and white

Esempio di output:

F:\test>findstr /v "black white" blackwhite.txt

red
blue

F:\test>findstr "black white" blackwhite.txt
black
white
black white
black and white

F:\test>findstr /c:"black white" blackwhite.txt
black white

F:\test>findstr "white" blackwhite.txt | findstr "black"
black white
black and white

Ulteriori letture


1
molto interessante .. Immagino che questo sarebbe alla ricerca di bianco E nero findstr "white" File2.txt | findstr "black"
barlop

bene, dato che abbiamo NOR, quindi c'è ancora una permutazione che potremmo considerare mancanti. NAND. Un altro che potremmo considerare mancante, è XOR
barlop

@barlop Non riesco a capire come fare NAND o XOR: / so quale sia l'output dovrebbero essere ma come arrivarci ...
DavidPostill

forse non c'è un bel modo veloce, probabilmente sarebbe un file batch che controlla errorlevel probabilmente meglio usare qualche altro strumento se facendolo, sembra che grep non possa ,. Ma awk può fare un bel po 'o ovviamente perl unix.stackexchange.com/questions/177513/...
barlop


0

Se è necessario visualizzare tutte le righe con le parole "nero" o "bianco", eliminare il / v nel comando.

Prova: findstr bianco File1.txt o findstr black File1.txt o findstr "nero bianco" File1.txt

L'operando / V stamperà tutte le righe che NON contengono la stringa di ricerca.

Digita findstr /? per maggiori informazioni su come usare findstr.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.