Jai créé un fichier texte avec 1000 lettres majuscules et minuscules aléatoires:

cat /dev/urandom | tr -dc "a-zA-Z0-9" | head -c 1000 > file1 

Combien de fois le mot « chat » apparaît-il dans ce fichier, en utilisant grep et wc?

Je lai fait de cette façon:

grep -ic cat file1 

Mais il compte les lignes dans lesquelles il apparaît, alors que je veux vérifier combien fois quil apparaît dans cette ligne. Une idée?

Commentaires

  • fyi, tr peut utiliser [: alnum:] au lieu de az .. . Et vous voulez compter combien de fois il apparaît dans tout le fichier, pas seulement sur chaque ligne, ou sur une seule ligne particulière (vous avez dit " dans cette ligne " à la fin)?

Réponse

Le travail que je dois faire est de trouver combien de fois dans ce fichier apparaît le monde « chat » en utilisant la commande grep et wc.

Essayez:

grep -oi cat file1 | wc -l 

Exemple:

$ cat file1 foo cat bar zoo cat random text cat dog foobar cat end! 

^ Nous avons quatre occurrences de cat ci-dessus.

grep -oi cat file1 | wc -l 4 

De man grep (je souligne):

 -o, --only-matching Print only the matched (non-empty) parts of a matching line, with each such part on a separate output line. 

Commentaires

  • La commande ci-dessus trouvera toutes les sous-chaînes cat même si elles en font partie dautres mots comme bob chat et chat alougue. Mais le fichier est créé de manière à ne contenir aucun espace, aucun mot de frein ni aucun saut de ligne. Cest donc juste une note.
  • @schweik Oui, cest vrai. Je nai ajouté aucune limite de mot à ma réponse.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *