Je veux vérifier le nombre de caractères dans un fichier à partir du début jusqu'au caractère EOF. Je ne sais pas si je peux le faire avec le shell script.
Réponses
Trop de publicités?Cela suffira pour le comptage octets dans le dossier :
wc -c filename
Si vous ne voulez que le décompte sans que le nom du fichier soit répété dans la sortie :
wc -c < filename
Cela comptera personnages dans les fichiers multioctets (Unicode, etc.) :
wc -m filename
(comme indiqué dans la réponse de Sébastien).
#!/bin/sh
wc -m $1 | awk '{print $1}'
wc -m
compte le nombre de caractères ; le awk
n'affiche que le nombre de caractères, en omettant le nom du fichier.
wc -c
vous donnera le nombre d'octets (qui peut être différent du nombre de caractères, car selon l'encodage, un caractère peut être encodé sur plusieurs octets).
Pour obtenir le nombre exact de caractères d'une chaîne, utilisez printf, plutôt que echo, cat ou wc -c directement sur un fichier, car echo, cat, etc. compteront un caractère de retour à la ligne, ce qui vous donnera le nombre de caractères y compris le caractère de retour à la ligne. Ainsi, un fichier contenant le texte "hello" affichera 6 si vous utilisez echo, etc., mais si vous utilisez printf, il renverra exactement 5, car il n'y a pas de caractère de retour à la ligne à compter.
Comment utiliser printf pour compter les caractères dans les chaînes de caractères :
$printf '6chars' | wc -m
6
Pour transformer ceci en un script que vous pouvez exécuter sur un fichier texte pour compter les caractères, enregistrez ce qui suit dans un fichier appelé print-character-amount.sh :
#!/bin/bash
characters=$(cat "$1")
printf "$characters" | wc -m
chmod +x sur le fichier print-character-amount.sh contenant le texte ci-dessus, placez le fichier dans votre PATH (c'est-à-dire /usr/bin/ ou tout répertoire exporté comme PATH dans votre fichier .bashrc) puis exécutez script sur le fichier texte :
print-character-amount.sh file-to-count-characters-of.txt
- Réponses précédentes
- Plus de réponses