当前位置:网站首页>[Batch dos - cmd Command - Summary and Summary] - String search, find, Filter Commands (FIND, findstr), differentiation and Analysis of Find and findstr
[Batch dos - cmd Command - Summary and Summary] - String search, find, Filter Commands (FIND, findstr), differentiation and Analysis of Find and findstr
2022-07-07 00:51:00 【Dssgresadfsrgre】
Un.、findLes ordres
1.1 ImprimerfindInformations d'aide pour la commande
Exécuter les commandes【find /?】.
C:\Users\Administrator>find /?
Recherche de chaînes dans un fichier.
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "string" [[drive:][path]filename[ ...]]
/V Afficher toutes les lignes qui ne contiennent pas la chaîne spécifiée.
/C Afficher seulement le nombre de lignes contenant la chaîne.
/N Afficher le numéro de ligne.
/I Ignorer le cas lors de la recherche de chaînes.
/OFF[LINE] Ne sautez pas les fichiers avec des ensembles de propriétés hors ligne.
"string" Spécifiez la chaîne de texte à rechercher.
[drive:][path]filename
Spécifiez les fichiers à rechercher.
Si aucun chemin n'est spécifié,FIND Tapez la recherche à l'invite
Ou le texte produit par une autre commande.
1.2 ChampstringEtfilepathSyntaxe de
find La commande ne reconnaît pas le retour.Lorsqu'il est utilisé find Lors de la recherche de texte dans le fichier contenant le retour de chariot,La chaîne de recherche doit être limitée au texte qui peut être trouvé entre deux retours,C'est - à - dire une chaîne qui ne peut pas être interrompue par un retour de chariot.Par exemple,“tax”Avec“file”Quand le retour se produit entre,find Aucun rapport trouvé“tax file”String.En d'autres termes,,findUniquement pour les chaînes sur la même ligne, Impossible de trouver des blocs de caractères entre les lignes .
Pour trouver une chaîne qui contient du texte dans des guillemets , La chaîne entière doit d'abord être entourée de guillemets .Deuxièmement,, Chaque citation contenue dans une chaîne doit être entourée de deux guillemets doubles .Oui. Report.docRecherche dans【abc"def"gh】,Tapez:
find "abc""def""gh" report.doc
Si vous voulez filtrer plusieurs critères , Rechercher dans un fichier texte qui contient à la fois des chaînes A Y compris les chaînes BOui., Peut être utilisé avec des symboles de tuyauterie , Pour plus de détails, voir 1.8Sous - section.
ChampstringLes jokers ne sont pas pris en charge, Si vous souhaitez rechercher des chaînes incluses AOu chaîneBOui.,Peut être utiliséforLes ordres.
for %f in (abc def) do find "%f" test.txt
ChampfilepathPrise en charge des jokers, Quant à la raison pour laquelle certains articles en ligne disent non ,Ça doit aller.for Instruction de commande utilisant ,Moi non plus.,Peut - être parce quecmd La raison de l'itération de version !
Voir détails1.3.2 Champ de vue de la section filepath Utilisation de caractères génériques pour .
1.3 Utilisation la plus élémentaire:find "string" filepath
Dans un fichier texte , Ou un tas de fichiers texte pour rechercher des informations sur la ligne où se trouve une chaîne .
1.3.1 Trouver des caractères anglais dans un seul fichier
Par exemple,Trouvertool.txt Chaîne dans le fichier texte 【AA】Oui..
Exécuter les commandes【find "AA" tool.txt】,Les résultats sont les suivants( S'il y a du chinois dans le fichier texte ,J'ai besoin d'une commandechcp 65001Passez d'abord àutf8Codage, Sinon, les résultats sont brouillés ).
1.3.2 Trouver des caractères chinois dans plusieurs fichiers
Avant de décider de rechercher des caractères chinois ,Il faut l'utiliser.chcp 65001Ouvertutf8Codage, Sinon, il n'y a pas de recherche .
Les ordres findDestringLe champ ne supporte pas les caractères génériques, C'est - à - dire si 【find "A?" tool.txt】, Enfin, aucune ligne ne sera affichée avec "A?", Parce que les points d'interrogation sont traités comme des points d'interrogation normaux .
Maisfilepath Les champs supportent les caractères génériques , C'est - à - dire si 【find "Vers le Nord" tool*.txt】, Tout sera affiché à la fin toolÇa commence partxtDocumentation.
1.4 Insensible à la casse——Paramètres/i
La valeur par défaut est sensible à la casse, Quand les paramètres sont ajoutés /i Il n'y a pas de différence après .
Là - haut1.2 Section basée sur un fichier texte ,Exécuter les commandes【find /i "aa" "tool?.txt"】,Les résultats sont les suivants:.
Paramètres/i Peut correspondre à n'importe quel autre paramètre , Il n'y aura pas de contradictions et de conflits logiques .
1.5 Recherche de lignes sans chaîne spécifiée ——Paramètres/v
La recherche par défaut contient des lignes pour la chaîne spécifiée , Quand les paramètres sont ajoutés /v Après ça, faites une recherche en arrière .
Là - haut1.2 Section basée sur un fichier texte ,Exécuter les commandes【find /v "AA" "tool.txt"】,Les résultats sont les suivants:.
Paramètres/v Peut correspondre à n'importe quel autre paramètre , Il n'y aura pas de contradictions et de conflits logiques .
1.6 Ajouter un numéro de ligne ——Paramètres/n
Non marqué par défaut , Afficher uniquement le contenu du texte sur la ligne , Quand les paramètres sont ajoutés /n Juste après l'étiquette supplémentaire ( Pas seulement l'étiquette ).
Là - haut1.2 Section basée sur un fichier texte ,Exécuter les commandes【find /n "AA" "tool.txt"】,Les résultats sont les suivants:.
Paramètres/n Peut correspondre à n'importe quel autre paramètre , Il n'y aura pas de contradictions et de conflits logiques .
1.7 Afficher uniquement le nombre de lignes cibles ——Paramètres/c
Par défaut, seul le contenu textuel de la ligne est affiché , Quand les paramètres sont ajoutés /c Après cela, seul le nombre de lignes dans lesquelles la chaîne existe est affiché .
c- Oui.countUne abréviation de,Indique le nombre.
Là - haut1.2 Section basée sur un fichier texte ,Exécuter les commandes【find /c "AA" "tool.txt"】,Les résultats sont les suivants:.
Paramètres/c En plus des paramètres /nContradictions, Rien d'autre n'est contradictoire . Si quelqu'un a vraiment ajouté ces deux paramètres quand il l'a écrit ,Quel que soit l'ordre, En fin de compte, seuls les paramètres /cÇa marchera..
Informations d'aide pour les paramètres /c Il y a un problème avec la description textuelle de , Plus précisément, ça devrait être 【 Afficher uniquement le nombre de lignes 】, Parce qu'il peut être relié aux paramètres /vEnsemble.,Représentation【 Afficher uniquement le nombre de lignes sans chaîne 】,Mise en œuvre【find /c /v "AA" "tool.txt"】Les résultats sont les suivants.
1.8 Coordonner les commandes de tuyauterie (Pipe Run)Utiliser
Résultat de sortie de l'instruction à gauche du pipeline , Sera entré dans l'énoncé de droite .
find Prise en charge de l'utilisation avec des caractères de tuyauterie , Si le tuyau à droite est findDéclarations, Le texte de la chaîne de sortie à gauche sera alors à droite find Objet de recherche de l'instruction .
find "abc" test.txt | find "xyz"
La phrase ci - dessus indique que test.txt La recherche dans la chaîne existe en même temps abcEt chaînesxyzOui.,C'est - à - dire la réalisationFiltrage multiple.
1.9 Recherche de chaînes de type en ligne en tant que filtre en temps réel
À propos des filtres en temps réel ,In1.1 Section imprimer l'aide comme indiqué ↓↓↓↓
Si aucun chemin n'est spécifié,FIND Recherche de texte dactylographié à l'invite ou produit par une autre commande .
C'est - à - dire, Ne donnez pas de chemin de fichier texte 、 Ne se connecte pas non plus aux extrémités des symboles de tuyauterie , Vous ne pouvez entrer que des lignes de chaînes en temps réel à partir du clavier .
Exécuter les commandes【find "abc"】, Le curseur s'enroule sur la tête .
N'importe lequel n'a pas abc Série de caractères pour ——【123456789】,Et de retour dans la voiture.
En frappant un avec abc Série de caractères pour ——【I miss you, abc!】,Et de retour dans la voiture.
On peut le découvrir., Cette chaîne de ligne est sortie intacte , Ça veut dire qu'il a réussi “ Un test sévère ”,Ha ha ha ha ha...
Après l'entrée, Comment quitter le filtre ?Avec des raccourcis clavier【ctrl+c】,Les ordres【exit】Impossible de quitter.
2.、findstrLes ordres
findstrRapport de commandefind Les ordres sont encore plus forts , Parce qu'il supporte aussi les expressions régulières ,C'est bien.“ Le plus fort parmi les plus forts ”.
2.1 ImprimerfindstrInformations d'aide pour la commande
C:\Users\Administrator>findstr /?
Recherche de chaînes dans le fichier.
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 Mode d'appariement au début d'une ligne .
/E Appariement des motifs à la fin d'une ligne .
/L Utiliser la chaîne de recherche par mot .
/R Utilisez la chaîne de recherche comme expression générale .
/S Recherche de fichiers correspondants dans le répertoire courant et tous les sous - répertoires .
/I Spécifie que la recherche est insensible à la casse .
/X Imprimer les lignes qui correspondent exactement .
/V Imprimer seulement les lignes qui ne correspondent pas .
/N Imprimer le nombre de lignes avant chaque ligne correspondante .
/M Si le fichier contient une correspondance , Imprimer uniquement son nom de fichier .
/O Imprimer les décalages de caractères avant chaque ligne correspondante .
/P Ignorer les fichiers avec des caractères non imprimables .
/OFF[LINE] Ne pas sauter les fichiers avec des ensembles de propriétés hors ligne .
/A:attr Spécifie les attributs de couleur avec des nombres hexadécimaux .Voir "color /?"
/F:file Lire la liste des fichiers à partir du fichier spécifié (/ Pour la console ).
/C:string Utiliser la chaîne spécifiée comme chaîne de recherche de texte .
/G:file Obtient la chaîne de recherche à partir du fichier spécifié . (/ Pour la console ).
/D:dir Trouver une liste de répertoires délimités par des points - virgules
strings Texte à rechercher .
[drive:][path]filename
Spécifiez le fichier à rechercher .
Sauf si le paramètre a /C Préfixe, Utilisez des espaces pour séparer les chaînes de recherche .
Par exemple: 'FINDSTR "hello there" x.y' Dans le fichier x.y Recherche "hello" Ou
"there".'FINDSTR /C:"hello there" x.y' Documentation x.y Recherche
"hello there".
Une référence rapide aux expressions générales :
. Jokers: N'importe quel caractère
* Je répète.: Nombre d'occurrences de zéro ou plus de caractères ou de classes précédents
^ Position de la ligne: Début de la ligne
$ Position de la ligne: La fin de la ligne
[class] Classe de caractères: Tout caractère dans un jeu de caractères
[^class] Classe de caractères supplémentaires : Tout caractère qui n'est pas dans l'ensemble de caractères
[x-y] Champ d'application: Tout caractère dans la plage spécifiée
\x Escape: Métacaractères x Utilisation du texte pour
\<xyz Position du mot: Le début du mot
xyz\> Position du mot: La fin du mot
Concernant FINDSTR Détails des expressions courantes , Voir la référence de commande en ligne .
(1)C'est exact./d:dirInstructions supplémentaires pour, L'aide originale n'est pas très intuitive ,Par exemple,【/d:dir1;dir2;dir3】.
(2)Pour les paramètres/rInstructions supplémentaires pour, La valeur par défaut est maintenant ok sans ,Non.string Est également reconnu comme une expression régulière (Expressions générales)De. Peut - être qu'à l'origine, seul ce champ de paramètre a été ajouté strings C'est l'expression régulière , Et ce paramètre reste après la révision .Un héritage historique.
2.2 ChampstringsEt paramètres/r、Paramètres/g:file
2.2.1 ChampstringsEt paramètres/c:string
Champstrings Est utilisé pour spécifier la chaîne de recherche , Je ne sais pas, tout le monde n'a pas remarqué que ce mot est pluriel ?
En fait, ça veut dire que les champs strings Autoriser l'inclusion de plusieurs chaînes , Les chaînes sont séparées par des espaces ,Par exemple【abc def ghi】, C'est une recherche séparée. 【abc】、【def】、【ghi】, Pour une ligne, il suffit de trouver l'une d'elles ,Il passera..
Si le champstrings Il n'y a qu'une seule chaîne (Pas d'espace、 Il n'y a pas non plus de symbole spécial ), Sans guillemets .
Si le champstrings Est plusieurs chaînes séparées par des espaces , Ou un symbole spécial dans une seule chaîne (Par exemple,&),Il faut des guillemets.
Et les paramètres/c:string Le nom est singulier , Cela signifie aussi qu'une fois les paramètres ajoutés /c, Vous ne pouvez rechercher qu'une seule chaîne , Pour plus de détails, voir 2.4.2Sous - section.
ChampstringsEt paramètres/c:string,Prend en charge les expressions régulières( Les jokers sont encore plus ), Voir la section suivante pour plus de détails .
2.2.2 Expressions régulières et paramètres /r
Infindstr Dans l'instruction de commande , Les règles d'expression régulière typiques supportées sont les suivantes: :
. Jokers: N'importe quel caractère
* Je répète.: Nombre d'occurrences de zéro ou plus de caractères ou de classes précédents
^ Position de la ligne: Début de la ligne
$ Position de la ligne: La fin de la ligne
[class] Classe de caractères: Tout caractère dans un jeu de caractères
[^class] Classe de caractères supplémentaires : Tout caractère qui n'est pas dans l'ensemble de caractères
[x-y] Champ d'application: Tout caractère dans la plage spécifiée
\x Escape: Métacaractères x Utilisation du texte pour
\<xyz Position du mot: Le début du mot
xyz\> Position du mot: La fin du mot
Là - haut.10Les symboles sont:“Métacaractères”, Oui a un sens particulier dans la syntaxe des expressions régulières ( Opérateur ou séparateur ) Symbole de.
(Ordinaire)“Caractères de texte” Est un caractère qui n'a pas de sens particulier dans la syntaxe d'expression régulière , Est l'élément de base qui correspond à la chaîne . Par exemple,26Lettres et10 Les chiffres sont des caractères originaux (Caractères de texte).
(1) Jokers et répétitions (.、*)
【.】Le numéro est un joker,Représente un caractère arbitraire.
【*】 Le numéro est un duplicata , Ne représente aucun caractère dans une expression régulière , Mais le nombre de répétitions du caractère ou de l'expression de gauche ,【*】 Le signe indique que le nombre de répétitions est égal à zéro ou plus .
【.*】Représente n'importe quel caractère, Ça peut être zéro caractère , Il y en a plusieurs .
Voici un exemple classique d'application de jokers et de répétitions .
Seulement【.】Heure,【.】 Le nombre de chiffres représente le nombre minimum de caractères pour la ligne correspondante ,Par exemple【.】 Correspond à une ligne avec au moins un caractère ,Et【.....】 Ça correspond à au moins 5Lignes de caractères.
Du dossiertool.txt Rechercher n'importe quel caractère dans , Ne pas inclure de caractères ou de lignes vides ,Peut exécuter des commandes【findstr . tool.txt】Ou【findstr "." tool.txt】.
Du dossiertool.txt Rechercher n'importe quel caractère dans , Y compris les caractères vides et les lignes vides ,Peut exécuter des commandes【findstr .* tool.txt】Ou【findstr ".*" tool.txt】.
(2) Rechercher n'importe quel caractère dans l'ensemble de caractères ([class]、[^class]、[x-y])
class La représentation formelle peut être divisée de façon discrète et indépendante ,Par exemple【aef】; Un signe moins signifie prendre ASCII Caractères encodés entre les symboles gauche et droit ,Par exemple[e-h]Représente l'extraction à partir deeÀhEntre les lettres(Insensible à la casse);Et^ Représente un complément à l'ensemble de caractères suivant .
En général, on ne peut utiliser que ASCIILes caractères( Ne peut pas être un caractère chinois ); Et pour certains caractères spéciaux ,Besoin d'évasion.
Pour les citations anglaises 【"】,Besoin d'évasion; S'il s'agit d'une seule citation anglaise ,C'est écrit comme suit:【"""】,C'est - à - dire["""].
Pour le signe moins 【-】Pas besoin de fuir, Écrivez directement sous une forme discrète ,Par exemple,[-a-z] Correspond à n'importe quelle lettre plus un signe moins .
Si vous insérez un joker dans un jeu de caractères 【.】 Et les répétitions 【*】,Va mettre【.】Et【*】Considéré comme un caractère normal, Sans signification générique et répétitive .
Du dossiertool.txt La recherche comprend a、b、c、e、z、yLettres Chaîne ou ligne de ,Commandes exécutables【findstr "[abcezy]" tool.txt】.
Du dossiertool.txt Masquer les chaînes ou les lignes qui ne sont pas conformes aux règles ,Si oui Une chaîne ou une ligne purement numérique est filtrée sans Affichage (Par exemple237623), Et si vous avez des caractères non numériques, laissez - les. (Par exemple,34yht888),Commandes exécutables【findstr "[^0-9]" tool.txt】.
Du dossiertool.txtRecherche dansCaractères minusculesa-f,l-zLa chaîne de, C'est - à - dire qu'il ne contient pas g h I j kCes lettres,Commandes exécutables【findstr "[a-fl-z]" tool.txt】.
Du dossiertool.txt La recherche comprend N'importe quel nombre Chaîne ou ligne de ,Commandes exécutables【findstr "[0-9]" tool.txt】.
Du dossiertool.txt La recherche comprend N'importe quelle lettre Chaîne ou ligne de ,Commandes exécutables【findstr "[a-z]" tool.txt】, Notez qu'il n'est pas nécessaire d'écrire 【findstr "[a-zA-Z]" tool.txt】,Parce que si c'estx-yForme, La valeur par défaut est insensible à la casse . Et si c'est similaire [abc] Cette forme discrète , Toujours sensible à la casse .
Du dossiertool.txt La correspondance moyenne se compose de deux Combinaison de jeux de caractères Qui sont faites comme MahY , MbiY, MahYAttendez.…..,Commandes exécutables【findstr "M[abc][hig]Y" tool.txt】.
(3) Début et fin des lignes et début et fin des mots (^、$、\<、\>)
Dans les messages d'aide,“Mots” Correspond au prototype anglais word, Donc la traduction chinoise “ Les mots peuvent également être remplacés par “Les mots”, Amélioration de l'intuition par l'utilisation directe de l'en - tête et de la fin dans les sous - titres .
L'ancre de ligne est ^Et$, Correspond respectivement au début et à la fin de la ligne , Le mot Anchor est \<Et\>, Correspond respectivement à l'en - tête et à la fin du mot .
Tête et queue de ligne , C'est - à - dire la position de départ et la position de fin ,C'est facile à comprendre.
Voici un exemple, Aide à comprendre les ancres d'en - tête et de queue d'une ligne .
^En - tête de ligne,"^step"Correspondance seulement"step hello world"Le premier mot;$Indique la fin de la ligne,"step$"Correspondance seulement "hello world step" Le dernier mot .
Voici un exemple, Aide à comprendre la tête et la queue des mots .
Fichier texte【tool.txt】 Il y a deux comportements "abcd" Et "abcd e".
Exécuter les commandes【findstr "cd\>" tool.txt】, Les deux lignes apparaîtront , Tant que c'est connecté ( Pas d'espace ) Avec cdFin( Pas besoin d'être à la fin de la ligne )Tous satisfaits,équivalent àcd Les mots à la fin sont trouvés dans toutes les lignes .
Ancrage de la première ligne et de la fin des deux lignes , Souvent utilisé pour filtrer des chiffres ou des lettres simples .
Comme vouloir filtrer tool.txtDans un fichier texteChiffres simples Chaîne ou ligne ,Commandes exécutables【findstr "^[0-9]*$" tool.txt】,
Par exemple【675758345】Sera conservé,Et【46752kkjl4】C'est filtré.
Comme vouloir filtrer tool.txtDans un fichier texteLettres pures Chaîne ou ligne ,Commandes exécutables【findstr "^[a-z]*$" tool.txt】,
Par exemple【hythdfgdgiuf】Réserve,Et【956sdsftgruylk】、【1321argad13】Est filtré.
Ancre au début et à la fin de la ligne 【^、$】 Correspond à un duplicata 【*】, Mise en œuvre d'une chaîne ou d'une ligne correspondant à plusieurs symboles de quantité
Si ce n'est pas dans la chaîne de recherche 【*】No., C'est - à - dire ne pas répéter les critères de recherche à gauche .
Par exemple【^[0-9]】 Correspond à n'importe quelle chaîne ou ligne dont l'en - tête de ligne est un nombre ,Et【[a-zA-Z]$】 Correspond à n'importe quelle chaîne ou ligne avec une lettre à la fin de la ligne .
Et si l'ancre de la première et de la dernière ligne est ajoutée en même temps , C'est - à - dire que la première ligne et la dernière ligne sont également limitées , Il y a donc quelques parenthèses qui correspondent à quelques caractères .Par exemple【^[0-9]$】 Ne correspond qu'à une seule ligne numérique ,Et【^[0-9][A-Za-z]$】 Ne correspond qu'au premier caractère est un nombre 、 Le deuxième caractère est une ligne de lettres .
(4) évasion des métacaractères ——/x(escapeIndique l'évasion)
Nous avons mentionné ci - dessus que les métacaractères incluent des caractères génériques 【.】、Duplicate【*】、 Tout signe 【[】Et【]】、 Continuum 【-】、 Complément 【^】、 Ancre au début et à la fin de la ligne 【^】Et【$】、 Début et fin du mot 【/<】Et【>/】.
Si vous comparez les métacaractères à x, Donc si nous voulons faire correspondre le texte normal des métacaractères ,Ça marche【/x】; Par exemple, pour un caractère continu 【-】L'évasion de,Ce qui correspond【/-】.
Et un peu plus long dans cet article —— Pour échapper aux guillemets doubles ,En guillemets doubles,C'est - à - dire【"】 Doit être échappé à 【"""】,【abc"def】À écrire【abc"""def】.
Pour la barre oblique avant 【/】L'évasion de, Comme les guillemets doubles , Utilisez - le pour résoudre ,C'est - à - dire【/】 Doit être échappé à 【//】.
2.2.3 Paramètres pour la recherche par lots de chaînes /g:filepath
Paramètres/gArrièrefilepathC'est un fichier texte, Chaque ligne représente une chaîne de recherche .
Partool.txt Le fichier a légèrement changé ,Générergoal.txtDocumentation.
Et puis,Exécuter à nouveau la commande【findstr /g:goal.txt tool.txt】,Les résultats sont les suivants:, J'ai enfin trouvé deux lignes de correspondance .
2.3 ChampfilepathEt paramètres/d:dir1;dir2、Paramètres/f:file、Paramètres/s
2.3.1 Emplacement de la recherche——Champfilepath
De cette sectionfilepath Renvoie aux champs du message d'aide [[drive:][path]filename[ ...]], C'est vrai, version simplifiée !
Champstrings Chaîne de recherche spécifiée , C'est - à - dire chercher quelque chose ;Et les champsfilepath Emplacement de recherche spécifié , C'est - à - dire où chercher .
Le chemin absolu peut être utilisé ,Le chemin relatif peut également être utilisé.
Non seulement vous pouvez rechercher des fichiers texte individuels , Vous pouvez également rechercher plusieurs fichiers texte , .Les chaînes de chemin des différents fichiers doivent être séparées par des espaces .
En plusfilepathLes jokers sont également pris en charge【*】Et jokers【?】.
Par exemple, exécuter des commandes【findstr /r "abc dedgth.t" tool?.txt】, Les résultats finaux incluent tool.txtEttoo1.txtInformations sur.
Comme exécuter des ordres 【findstr /r "abc" *.*】Ou【findstr /r "abc" "*.*"】,Il sera là. Répertoire actuel tous les fichiers MoyenneRecherche Y a - t - il une chaîne abc.
2.3.2 Recherche dans un ou plusieurs répertoires ——Paramètres/d:dir1 dir2 dir3
Comment utiliser ce paramètre , Écrivez le Code tel qu'il est écrit dans l'aide , Ça devrait être facile à réaliser , Mais en fin de compte, il n'y a pas d'effet escompté. .
Exécutez d'abord les commandes【findstr /r /s "AA" *.*】, Trouver des fichiers dans le répertoire courant et tous ses sous - répertoires qui contiennent AAOui..
Exécuter à nouveau la commande【findstr /r /s "AA" /d:dir1;dir2】, Mais l'erreur n'a pas pu trouver le répertoire .
Remplacer par un catalogue absolu,Mise en œuvre【findstr /r "AA" /d:D:\D-desktop\test5\dir1;D:\D-desktop\test5\dir2】,Pas encore.
--------------------- Mettre à jour la ligne de partage ----------------------------
Après une exploration, J'ai enfin compris .
Paramètres originaux /d:dir1;dir2;dir3Ne peut pas être placéstringsDerrière.; Il s'avère que même avec les paramètres ajoutés /d:dir1;dir2;dir3, Il faut aussi donner filepathRègles de correspondance pour.
Donc les paramètres /d:dir1;dir2;dir3 Il suffit de commencer la recherche dans le répertoire , Quand vous ajoutez ce paramètre ,Par défautCMD Le répertoire courant est le Répertoire de recherche de départ ; Le Répertoire de recherche de départ fait référence au sous - répertoire “Point de départ”.
Et la raison pour laquelle filepathRègles de correspondance, Parce qu'il évite trop de fichiers non textuels dans le Répertoire , C'est une recherche fastidieuse , Il peut également améliorer la diversité des règles d'appariement et la précision de l'appariement .
Exécuter les commandes【findstr /r /d:dir1;dir2;dir3 "AA" *.*】Après,Les résultats sont les suivants:,Très réussi.!!!
2.3.3 Chemin fourni par le fichier texte emprunté (Table des matières)Pour chercher——Paramètres/f:file
Créer un nouveau fichier texte,Il se lit comme suit:,Avant3 Les lignes sont les chemins relatifs des fichiers , La dernière ligne est un chemin de répertoire relatif
Et voilà., Nous n'avons pas à nous soucier du chemin de fichier spécifié , Mais le chemin du Répertoire n'est pas comme 2.3.2 Les règles de correspondance doivent également être spécifiées plus loin dans la section. ?
Autant essayer.,On exécute les ordres【findstr /r /f:paths.txt "AA" "*.*"】,Les résultats sont les suivants:
Et si vous ne spécifiez pas de règles de correspondance ,Exécuter les commandes 【findstr /r /f:paths.txt "AA"】, Il n'y aura pas de résultats de recherche pour le répertoire actuel .
Et puis,Je me repense., Est - ce un paramètre /f:filepath Le chemin du Répertoire n'est pas pris en charge ? Regardez en arrière les messages d'aide ,“ Lire la liste des fichiers ” Au lieu de lire la liste des dossiers , Le sens officiel ne devrait donc pas non plus soutenir la lecture des dossiers à l'intérieur .
/F:file Lire la liste des fichiers à partir du fichier spécifié (/ Pour la console ).
2.3.4 Portée de la recherche profondeur longitudinale , Extension aux sous - répertoires ——Paramètres/s
Si vous n'ajoutez pas de paramètres/s,Exécuter les commandes【findstr /r "AA" *.*】, Seuls les fichiers conformes au répertoire courant peuvent être trouvés .
Exécutez d'abord les commandes【findstr /r /s "AA" *.*】, Trouver des fichiers dans le répertoire courant et tous ses sous - répertoires qui contiennent AAOui..
2.4 Paramètres du mode de recherche /b、/e、/c、/l、/i、/x、/v、
2.4.1 Paramètres de positionnement du début et de la fin de la ligne ——Paramètres/b、/e
La fonction des paramètres de positionnement de cette section est en fait compatible avec les métacaractères des expressions régulières 【^】、【$】Fonctionnalité identique, .La chaîne de recherche ne peut être recherchée et appariée qu'au début ou à la fin de la ligne .
Par exemple, avec des paramètres /b, La chaîne de recherche doit être placée au début de la ligne pour correspondre , Et une ligne est 【rfgwercd fwerfreg】,On peut utiliser les ordres【findstr /l "fwerf" tool.txt】 Trouver cette ligne , Mais pas avec des ordres 【findstr /l /b "fwerf" tool.txt】Je l'ai..
Même chose.,Paramètres/e Comme paramètre de positionnement de fin de ligne , Le mécanisme d'exécution est aussi simple .
Paramètres/bEt paramètres/ePeut être ajouté en même temps, Parce qu'il n'y a pas de conflit , Une chaîne de recherche peut être soit proche de l'en - tête de ligne, soit comme fin de ligne .
2.4.2 Lors de la recherche de chaînes avec des espaces , Paramètre à ajouter /c
Si la chaîne de recherche a des espaces ,Par exemple,【A B C】,Alorscmd Par défaut, le Programme recherche les chaînes dans la source de recherche 【A】、【B】、【C】, Dès que l'un d'eux répond aux règles ,Il passera..
Mais si la chaîne que nous recherchons a des espaces en elle - même , En d'autres termes, vous devez chercher avec des espaces ?
Les paramètres sont nécessaires /cC'est, Et doit être écrit comme /c:stringForme.On peut mettrecVoirconnectAbréviation de, Les chaînes des deux côtés de l'espace sont connectées dans un tout , Pour mémoriser les paramètres /cPlus fort.
Par ordre【findstr /c:"ab c" tool.txt】Par exemple, La dernière recherche devrait inclure 【ab c】 Chaîne ou ligne de ; Sans paramètres /c,Écrit comme suit:【findstr "ab c" tool.txt】,Comme ça【abasdref】、【cdsagrgtr】 La chaîne ou la ligne de .
2.4.3 Recherche de chaînes comme mots ——Paramètres/l
Je ne sais pas comment utiliser ce paramètre. .
Si la chaîne de recherche est une partie ou la totalité d'un mot , Et ce mot apparaît sur une ligne , Cette ligne a été acceptée. .
Et s'il y a des espaces dans la chaîne de recherche , C'est - à - dire qu'il y a plus d'un mot , Il est ensuite recherché séparément , Tant que la chaîne dans une ligne a exactement un de ces mots ( Correspondance partielle ou complète ),Et ça passera..
Paramètres/l Ne peut pas être comparé aux paramètres /cCollocation? Essayez d'exécuter les ordres 【findstr /l /c:"wercd fwerf" tool.txt】,Les résultats sont les suivants. Ça passera aussi , Je me demande particulièrement , Parce que puisque la recherche par mot , Un mot ne peut pas avoir d'espaces , Il y a des espaces dans la chaîne de recherche et ils sont paramétrés /c Limité à un tout , Au lieu de cela, considérez - le comme un mot. , N'est - ce pas ridicule ?
D'après les tests ci - dessus , Je ne vois aucun paramètre ajouté /lLe sens de, C'est pareil avec ou sans .
2.4.4 Toute la ligne correspond , Début et fin de la ligne près de ——Paramètres/x
Qu'est - ce qu'une correspondance de ligne entière ? C'est - à - dire que la chaîne à rechercher prend une ligne ,Pas une partie..
C'est facile d'obtenir , Ce modèle correspond exactement à la première ligne et à la fin de la ligne. , En dessous 3 Les commandes sont exécutées exactement de la même façon .
findstr /e /b "fg" tool.txt
findstr /x "fg" tool.txt
findstr "^fg$" tool.txt
2.4.5 Insensible à la casse——Paramètres/i
findstr L'instruction de commande est sensible à la casse par défaut , Si vous voulez être indiscernable ,Peut ajouter des paramètres/i.
Paramètresi- Oui.ignoreUne abréviation de,Indique ignorer, Ignorer les problèmes de casse , N'est - ce pas insensible à la casse ?
Exécuter les commandes【findstr /i "aa" tool.txt】, Parmi les résultats de la dernière recherche AA.
2.4.6 Rechercher un complément à la chaîne cible ——Paramètres/v
Par défaut, ce qu'il faut chercher ,Produits(Afficher)Qu'est - ce que, C'est le moment de choisir ce que ; Mais il y a un cas où la cible ne peut pas produire (Afficher), C'est le moment de choisir de ne rien .
Ajouter un paramètre/v,Exécuter les commandes【findstr /v "AA" tool.txt】,Ceux avecAA Toutes les lignes de la chaîne sont jetées .
2.5 Afficher les paramètres des options /m、/n、/o
Afficher les paramètres des options /m、/n、/o Je change juste le style de l'affichage , Ne pas modifier le contenu du fichier texte .
Ces trois paramètres ne sont en conflit avec aucun autre paramètre ;Mais les paramètres/mEt paramètres/n、Paramètres/oIl y a un conflit., Parce que l'affichage du nom de fichier seulement signifie que le numéro de séquence de ligne de la chaîne ne peut pas être affiché 、 La valeur de décalage de chaîne ne peut pas non plus être affichée .
Paramètres/mAfficher uniquementNom du fichier,
Paramètres/nIndique l'affichageNuméro de ligne,
Paramètres/o Représente la valeur offset de la chaîne de destination d'affichage depuis le début du fichier (Nombre d'octets offset, Au lieu de décaler le nombre de caractères ).
PourASCIILes caractères,Un caractère est un octet(Espace, par exemple), Entrée invisible 、 Le saut de ligne prend deux octets , Mais pour les symboles ou caractères chinois , Un caractère chinois correspond à 2-4Octets.
Trois、findLes ordres etfindstrLa différence entre les ordres
3.1 find La commande prend en charge le nombre total de lignes statistiques
find Paramètres de support de commande /c( Afficher uniquement le nombre de lignes correspondantes ), Les lignes conformes aux règles peuvent être comptées quantitativement .
Par exemple【find /c "A" tool.txt】Peut être comptétest.txt Contient une chaîne abcNombre total de lignes pour,Etfindstr La commande ne fournit pas directement cette fonctionnalité ,Besoin de coordinationforLes déclarations peuvent être mises en œuvre.
findstr Paramètres de l'instruction de commande /c La fonction n'est pas de compter (count),C'est la connexion.(connect) ;Paramètres/cSuivi destring Espaces autorisés , Pas comme deux chaînes .
3.2 find La commande prend en charge la recherche UnicodeLes caractères
En général, à l'exception des alphanumériques, ceux - ci peuvent être liés à ASCII Caractères compatibles , Langue et écriture propres à un pays (Comme le chinois simplifié、Japonais、Coréen) À usage général Utf8Codage, Donc pour vérifier, à part ASCII Caractères en dehors de la plage d'encodage ,J'ai besoin defindLes ordres.
find- Oui." Quoi? ",MaisfindstrJe ne peux pas le trouver..
Si vous cherchez unicodeLes caractères, Et je veux quelque chose comme findstr La puissance des commandes , Un programme tiers peut être téléchargé ——GNU Grep for windows,Plus de détails. Voir téléchargement du site officiel .
3.3 find La commande supporte le filtrage de caractères spéciaux
Les points de vue de cette section proviennent du web ,C'est probablement2012 L'année est très populaire ; Je ne sais pas pourquoi je ne peux pas ,Ça pourrait êtrecmd La commande a été mise à jour ?Ne dis pas de bêtises, Citez leur point de vue , Servez les cornichons pour le public. .
find Certains caractères spéciaux peuvent être filtrés ,EtfindstrPas question.
Par exemple,,Nous utilisons【fsutil fsinfo drives】 Lorsque l'instruction interroge une partition de disque , Si vous voulez que la ligne de lettre de lecteur apparaisse au lieu d'apparaître sur la même ligne Attendez.(En servicefor L'instruction est utile pour extraire la lettre de commande ),find Peut se montrer ,Etfindstr Je ne peux que regarder .
Le code spécifique est: :【fsutil fsinfo drives|find /v ""】,Les résultats sont les suivants:.
Si ça devientfindstr,Il y aura une erreur.
Bien quefind Les résultats ne sont pas non plus affichés en plusieurs lignes ,MaisfindstrPas du tout.. C'est possible.2012 C'est ce que les internautes disent sur les avantages ?
3.4 findstrOrdre destring Les champs supportent les caractères génériques
Dans la chaîne de recherche ,findImpossible d'utiliser des caractères génériques (* Et ?) .
Pour utiliser des jokers et regex Chaîne de recherche de motif ,Ne peut être utilisé quefindstrLes ordres, Ou télécharger un programme tiers grep.
3.5 find La commande ne peut pas lire le flux de données alternatif
find La commande ne peut pas lire le flux de données alternatif .
Pour rechercher dans un autre flux de données ,Veuillez utiliser findstr、moreOufor /fLes ordres.
Cette citation ci - dessus ,DeLe site officiel de MicrosoftfindNotes pour la commande.
Je ne comprends toujours pas ce que signifie le flux de données alternatif ?Le nom anglais estalternate data streams.
3.6 findEtfindstr Les commandes supportent les codes de sortie (Code d'erreur)
findEtfindstr Le Code de sortie de la commande est 3Espèce, Chacun représente un résultat de recherche différent .
Code de sortie | Description |
---|---|
0 | Trouver la chaîne de recherche |
1 | Impossible de trouver la chaîne de recherche |
2 | Impossible de trouver le fichier recherché ou un commutateur de ligne de commande invalide spécifié |
findstrLes ordres
findLes ordres
边栏推荐
- The way of intelligent operation and maintenance application, bid farewell to the crisis of enterprise digital transformation
- How to get started and improve test development?
- Leecode brush questions record sword finger offer 44 A digit in a sequence of numbers
- OSPF configuration command of Huawei equipment
- Mujoco produces analog video
- Advanced learning of MySQL -- basics -- multi table query -- external connection
- Model-Free Control
- Web project com mysql. cj. jdbc. Driver and com mysql. jdbc. Driver differences
- 准备好在CI/CD中自动化持续部署了吗?
- 如何判断一个数组中的元素包含一个对象的所有属性值
猜你喜欢
Stm32f407 ------- SPI communication
Slam d'attention: un slam visuel monoculaire appris de l'attention humaine
AI super clear repair resurfaces the light in Huang Jiaju's eyes, Lecun boss's "deep learning" course survival report, beautiful paintings only need one line of code, AI's latest paper | showmeai info
Data analysis course notes (V) common statistical methods, data and spelling, index and composite index
equals()与hashCode()
学习光线跟踪一样的自3D表征Ego3RT
深度学习之数据处理
Everyone is always talking about EQ, so what is EQ?
Telerik UI 2022 R2 SP1 Retail-Not Crack
Chapter II proxy and cookies of urllib Library
随机推荐
C Primer Plus Chapter 14 (structure and other data forms)
Are you ready to automate continuous deployment in ci/cd?
2021 SASE integration strategic roadmap (I)
Zynq transplant ucosiii
【vulnhub】presidential1
How to judge whether an element in an array contains all attribute values of an object
深度学习之线性代数
Distributed cache
Five different code similarity detection and the development trend of code similarity detection
37 pages Digital Village revitalization intelligent agriculture Comprehensive Planning and Construction Scheme
St table
How engineers treat open source -- the heartfelt words of an old engineer
Explain in detail the implementation of call, apply and bind in JS (source code implementation)
Stm32f407 ------- DAC digital to analog conversion
Use mujoco to simulate Cassie robot
Model-Free Prediction
Alexnet experiment encounters: loss Nan, train ACC 0.100, test ACC 0.100
[Niuke classic question 01] bit operation
Chapter II proxy and cookies of urllib Library
C9高校,博士生一作发Nature!