Argument chaîne multiple de la commande findstr DOS

21
findstr /v "black"  File1.txt

Au-dessus de la commande DOS, le contenu de "File1.txt" ne correspond pas à la chaîne "noire".

Comment modifier cette commande, si j'ai besoin de filtrer les mots "noir" et "blanc"?

Arun
la source
2
L' findstroutil ne fait pas partie de MS-DOS. Il est livré avec Windows (XP +?). Je pense que vous voulez dire «outil de ligne de commande» au lieu de «commande DOS».
Michel de Ruiter

Réponses:

30

Comment filtrer les mots "noir" et "blanc"?

La commande suivante affichera toutes les lignes contenant "black" NOR "white" :

findstr /v "black white" blackwhite.txt

La commande suivante affichera toutes les lignes contenant "black" OR "white" :

findstr "black white" blackwhite.txt

La commande suivante affichera toutes les lignes contenant EXACTEMENT "black white ":

findstr /c:"black white" blackwhite.txt

La commande suivante affichera toutes les lignes contenant "black" AND "white" :

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

Remarques:

  • Lorsque la chaîne de recherche contient plusieurs mots, séparés par des espaces, les findstrlignes contenant l'un ou l'autre des mots (OR) seront renvoyées.

  • Une recherche littérale ( /C:string) inversera ce comportement et permettra de rechercher une phrase ou une phrase. Une recherche littérale permet également de rechercher des caractères de ponctuation.

Exemple de fichier de données (blackwhite.txt):

red
black
white
blue
black white
black and white

Exemple de sortie:

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

Lectures complémentaires

DavidPostill
la source
1
très intéressant .. Je suppose que ce serait la recherche de blanc ET noirfindstr "white" File2.txt | findstr "black"
barlop
eh bien, puisque nous avons NOR, il y a donc encore une permutation que nous pourrions considérer comme manquante. NAND. Un autre que nous pourrions considérer comme manquant, est XOR
barlop
@barlop Je n'arrive pas à comprendre comment faire NAND ou XOR: / Je sais quelle devrait être la sortie mais comment y arriver ...
DavidPostill
il n'y a peut-être pas de moyen rapide et agréable, ce serait probablement un fichier batch vérifiant le niveau d'erreur, probablement mieux d'utiliser un autre outil si vous le faites, il semble que grep ne le puisse pas. Mais awk peut faire un peu ou bien sûr perl unix.stackexchange.com/questions/177513/…
barlop
Continuons cette discussion dans le chat .
barlop
0

Si vous devez afficher toutes les lignes avec les mots "noir" ou "blanc", supprimez le / v dans votre commande.

Essayez: findstr blanc File1.txt ou findstr noir File1.txt ou findstr "noir blanc" File1.txt

L'opérande / V imprimera toutes les lignes qui NE contiennent PAS votre chaîne de recherche.

Tapez findstr /? pour plus d'informations sur l'utilisation de findstr.

Dean Spicer
la source