Comment faire pour trouver le nombre de correspondances dans Unix

December 30

Unix fournit des fonctionnalités de correspondance de motif avec la ligne de commande programme "grep." Grep peut rechercher un fichier ou des lots entiers de fichiers pour le texte et peut même comprendre complexes scripts texte de manipulation comme regex. Naturellement, en plus de vous montrer les matches, il peut aussi vous permettre de savoir exactement combien de matchs il trouve.

Instructions

1 Ouvrez un terminal en cliquant sur l'icône de terminal sur votre bureau.

2 Tapez la commande suivante pour avoir grep rechercher un fichier et compter le nombre de matches:

"Le modèle" grep -i <file_to_search.txt

Remplacer "pattern" avec le motif que vous souhaitez rechercher et "file_to_search.txt" avec le nom du fichier ou les fichiers que vous souhaitez rechercher le motif. La clé est le drapeau "-c", qui raconte greps de signaler le nombre de matches plutôt que de montrer les matchs à vous sur la ligne de commande.

3 Tapez la commande suivante pour un exemple rapide de la façon dont la commande grep fonctionnera:

echo "Je recherche ce pour le mot cela." > file.txt

"This" file.txt grep -i

La première ligne crée un fichier avec le texte donné, et le second a grep rechercher le fichier pour le mot «ce». Il rendra compte "1."

Conseils et avertissements

  • Par défaut, la sortie grep volonté le nombre de lignes correspondant. Ainsi, la ligne «Je cherche ce le mot cela." à l'étape 3 sera de retour «1» si recherché le mot «cela», car une seule ligne correspond. Si vous avez besoin de connaître les matchs au total, et non pas des lignes correspondant au total, vous devez être un peu plus créatif. Au lieu de ce qui précède, tapez ce qui suit:
  • "This" file.txt de grep | wc -w
  • Le drapeau "-o" dit grep pour imprimer chaque mot correspondant. Il est ensuite envoyé à la commande "wc" en utilisant le caractère pipe "|". WC (en nombre de mots) compte alors le nombre de mots donnés par grep, et cela vous donnera un nombre de matches.

          

Post a comment: