Comptage du nombre de points dans une chaîne
Comment puis-je compter le nombre de points dans une chaîne de caractères en BASH? Par exemple
VAR="s454-da4_sd.fs_84-df.f-sds.a_as_d.a-565sd.dasd"
# Variable VAR contains 5 dots
source d'informationauteur Charlie
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le faire en combinant
grep
etwc
commandes:Explication:
Ou vous pouvez utiliser seulement
grep
:Solution dans le plus pur
bash
:ou même simplement chepner mentionné:
awk
alternative:De sortie:
tr
-d
supprime les caractères indiqués à partir de l'entrée.-c
prend l'inverse de caractères. ensemble, cette expression supprime non caractères '.' et compte la longueur résultante à l'aide dewc
.Temporairement le réglage de
IFS
pur Bash, pas de sous-processus:De sortie:
Cela fonctionne en définissant le champ séparateur "." dans un shell interne est exécuté et le réglage de la position des paramètres par mot de fractionnement de la chaîne. Avec N points, il y aura N+1 paramètres positionnels. Nous terminons par la soustraction de l'un à partir du nombre de paramètres positionnels dans le shell interne est exécuté et en écho à celle d'être capturé dans
dot_count
.