La commande wc (nombre de mots) est l'un des utilitaires du noyau GNU qui semble simple mais qui est en fait une commande très utile. Comme son nom l'indique, il compte le nombre de lignes, de mots, de caractères, d'octets et même la longueur de la ligne la plus longue du fichier et les imprime sur la sortie standard. Vous pouvez avoir besoin de ce décompte pour plusieurs raisons. Par exemple, vous pouvez utiliser le nombre de caractères pour limiter le nombre de caractères pouvant être insérés dans une publication. De même, vous pouvez compter le nombre d'utilisateurs sur votre système, le nombre de packages installés sur votre système, etc.
Dans cet article, nous expliquerons comment utiliser la commande wc sous Linux avec ses options de ligne de commande et quelques exemples.
Nous avons exécuté les commandes sur le système Ubuntu 20.04 Focal Fossa. Plus ou moins les mêmes commandes peuvent également être implémentées sur d'autres distributions Linux. Nous avons exécuté les commandes sur l'application Terminal par défaut, accessible via le raccourci clavier Ctrl+Alt+T.
Syntaxe
Voici la syntaxe de base de la commande wc :
wc [OPTION]... [FILE]...
Si vous souhaitez utiliser plusieurs options, vous pouvez les ajouter sans espace. Alors que pour plusieurs fichiers, vous devez les séparer par un seul espace.
Utilisation de base de la commande wc
Lorsque la commande wc est utilisée sans aucune option de ligne de commande, elle renvoie le nombre de lignes, de mots et d'octets dans les fichiers. Pour utiliser la commande wc, tapez simplement wc suivi du nom du fichier pour lequel vous souhaitez trouver le décompte.
$ wc testfile.txt

Sortie expliquée :
La commande wc imprime les résultats du comptage pour le fichier spécifié dans quatre colonnes. La première colonne indique le nombre de lignes dans le fichier, la deuxième colonne indique le nombre de mots, la troisième colonne indique le nombre d'octets et la quatrième colonne indique le nom du fichier.
Remarque :wc n'imprime que la nouvelle ligne et non les lignes réelles du fichier spécifié.
Dans la sortie de la commande ci-dessus, 12 est le nombre de lignes, 21 est le nombre de mots et 116 est le nombre d'octets dans le "testfile.txt".
Si vous ne souhaitez pas imprimer le nom du fichier dans le résultat, utilisez
Avec la commande wc, vous pouvez spécifier plusieurs fichiers pour le décompte. La commande wc renvoie le décompte pour chacun des fichiers avec le décompte total à la fin qui est la somme du décompte pour chaque fichier.
La commande wc a quelques options de ligne de commande. Examinons ces options et leurs fonctions :
Utilisation de la commande wc avec -l ou –lignes option, vous pouvez imprimer uniquement le nombre de lignes dans le fichier. Par exemple, la commande suivante n'imprimera que le nombre de lignes dans le "testfile.txt":
Dans la sortie suivante, 12 est le nombre de lignes dans le "testfile.txt".
Si vous avez besoin d'imprimer uniquement le nombre de mots dans un fichier, utilisez la commande wc avec -w ou –mots option. Par exemple, la commande suivante imprimera le nombre de mots dans le "testfile.txt":
Dans la sortie suivante, 21 est le nombre de mots dans le "testfile.txt".
Utilisation de la commande wc avec -c ou –octets option, vous pouvez imprimer le nombre d'octets dans le fichier. La commande suivante imprimera le nombre d'octets dans le "testfile.txt":
Dans la sortie suivante, 116 est le nombre d'octets dans le "testfile.txt".
Utilisation de la commande wc avec -m ou –caractères option, vous pouvez imprimer le nombre de caractères dans le fichier. Par exemple, la commande suivante n'imprimera que le nombre de caractères dans le "testfile.txt":
Dans la sortie suivante, 116 est le nombre de caractères dans le testfile.txt.
Remarque :Le nombre d'octets et le nombre de caractères sont les mêmes pour les fichiers au format ASCII.
Si vous avez besoin d'imprimer la longueur de la ligne la plus longue dans un fichier spécifique, vous pouvez le faire en utilisant la commande wc avec -L ou –max-line-length option. Par exemple, la commande suivante imprimera la longueur de la ligne la plus longue du "testfile.txt":
Dans la sortie suivante, 20 est la longueur de la ligne la plus longue.
Pour afficher la version de la commande wc, utilisez la commande suivante :
Vous pouvez également combiner les options de ligne de commande. Par exemple, pour imprimer le nombre de lignes et d'octets, combinez les options -l et -c comme suit :
Remarque :Que vous exécutiez -lc ou -cl, la sortie sera toujours dans le même ordre, c'est-à-dire ligne, mot et nombre d'octets.
Dans la sortie ci-dessus, 29 est le nombre de lignes et 782 est le nombre d'octets dans le fichier "sample.txt".
Afin d'enregistrer la sortie de la commande wc dans un fichier, utilisez l'opérateur> comme suit :
Regardons quelques-uns des exemples de la commande wc en la reliant à d'autres commandes.
Pour compter le nombre de fichiers dans n'importe quel répertoire, dirigez la sortie de la commande find vers wc. Par exemple, pour trouver le nombre de fichiers dans le répertoire ~/Downloads, la commande serait :
La commande find répertorie tous les fichiers dans le répertoire ~/Downloads de votre système qui est ensuite redirigé vers la commande wc pour obtenir un décompte.
La commande wc peut également être utilisée pour compter le nombre total d'utilisateurs dans un système. Pour compter le nombre d'utilisateurs, utilisez la commande "getent passwd" et dirigez sa sortie vers la commande wc comme suit :
La commande ‘getent passwd’ répertorie tous les utilisateurs du système qui est ensuite redirigé vers la commande wc pour obtenir un décompte.
Avec la commande wc, vous pouvez également compter le nombre de packages installés sur votre système. Pour compter le nombre de packages installés, utilisez la commande suivante :
La commande « apt list –installed » répertorie tous les packages installés dans le système, qui sont ensuite redirigés vers la commande wc pour obtenir un décompte.
Avec la commande wc, vous pouvez compter le nombre de mots particuliers dans un fichier. Par exemple, pour savoir combien de fois le mot "science" est apparu dans le fichier nommé "sample.txt", la commande serait :
Dans cet exemple, la commande grep recherche l'occurrence du mot "science" dans le fichier sample.txt qui est ensuite redirigé vers la commande wc pour obtenir un décompte.
Avec la commande wc, vous pouvez également trouver le nombre de caractères dans une ligne spécifique. Par exemple, pour trouver le nombre de caractères dans la ligne 50 du fichier nommé "sample.txt", la commande serait :
Dans cet exemple, la tête listera les 50 premières lignes du fichier sample.txt qui est ensuite redirigé vers la commande tail. La "queue -1 " La commande filtre ensuite la dernière ligne (Ligne n ° 50) de la première sortie obtenue à partir de la tête commande. La sortie de la queue La commande est ensuite redirigée vers la commande wc pour obtenir le nombre de caractères de la ligne 50.
Dans l'exemple suivant, nous allons créer un script qui comptera les lignes, les mots et les octets dans un fichier. Lors de l'exécution du script, nous transmettrons le nom du fichier comme argument, afin que vous puissiez exécuter le même script pour n'importe lequel de vos fichiers.
Créez un script avec les lignes de code suivantes :
Exécutez maintenant le script en passant le nom du fichier comme argument.
Par exemple, pour obtenir le nombre de lignes, de mots et de caractères pour le fichier nommé "sample.txt", exécutez le script en passant sample.txt comme argument :
Après avoir exécuté le script, vous recevrez une sortie similaire indiquant le nombre de mots pour votre fichier.
Si le fichier se trouve à un autre emplacement que votre répertoire de travail actuel, mentionnez le chemin complet :
C'est ainsi que vous pouvez utiliser la commande wc sous Linux. Dans cet article, vous avez appris les bases de la commande wc ainsi que ses options de ligne de commande et quelques exemples pratiques. Désormais, vous pouvez facilement compter le nombre de lignes, de mots, de caractères et d'octets dans vos fichiers et dans la sortie d'autres commandes.
$ wc < testfile.txt
Compter à partir de plusieurs fichiers
Options
Compter le nombre de lignes
$ wc -l testfile.txt
Compter le nombre de mots
$ wc -w testfile.txt
Compter le nombre d'octets
$ wc -c testfile.txt
Compter le nombre de caractères
$ wc -m testfile.txt
Imprimer la longueur de la ligne la plus longue
$ wc -L testfile.txt
Afficher la version
$ wc --version
Imprimer le nombre de lignes et d'octets
$ wc -lc
Stocker le nombre dans un fichier
$ wc sample.txt > file_count
Exemple d'utilisation de la commande WC
Comptage des fichiers dans n'importe quel répertoire
$ find ~/Downloads/ -type f | wc -l
Compter le nombre d'utilisateurs
$ getent passwd | wc –l
Compter le nombre de packages installés
$ apt list --installed | wc -l
Compter le nombre de mots particuliers dans un fichier
$ grep -o ‘science’ sample.txt | wc -w
Compter le nombre de caractères dans une ligne spécifique
$ head -50 sample.txt | tail -1 | wc -w
Utiliser un script pour compter
#!/bin/bash
echo "File to read:"
read file
echo ""
echo "This file has the following number of:"
echo -n "Lines: "
wc -l < $file
echo -n "Words: "
wc -w < $file
echo -n "Chars: "
wc -c < $file
$ <./script_name> <path/to/filename>
$ ./script2 sample.txt
$ ./script2 /etc/passwd