GNU/Linux >> Tutoriels Linux >  >> Linux

Comment trouver la longueur d'une chaîne dans Bash [Astuce rapide]

Si vous avez affaire à des chaînes dans bash, vous devrez peut-être connaître la longueur de la chaîne.

Heureusement, obtenir la longueur d'une chaîne dans bash est très simple. Disons que vous avez une chaîne nommée my_string . Sa longueur peut être extraite comme :

${#my_string}

Voici un exemple pour mieux expliquer les choses :

[email protected]:~$ my_string="abhishek"
[email protected]:~$ echo "length is ${#my_string}"
length is 8

C'était facile, n'est-ce pas ? Vous pouvez enregistrer cette longueur de chaîne dans une autre variable et l'utiliser plus tard :

[email protected]:~$ my_string="abhishek"
[email protected]:~$ length=${#my_string}
[email protected]:~$ echo "String length is $length"
String length is 8

Comme la plupart des autres choses sous Linux, ce n'est pas la seule façon de calculer la longueur des chaînes dans Bash.

Obtenir la longueur de la chaîne dans bash à l'aide de la commande expr

Voyons quelques autres commandes qui pourraient vous aider à tester la longueur de la chaîne dans bash.

L'une de ces commandes est la commande expr. Il a plusieurs options qui sont utiles pour les options de chaîne. Parmi eux, length vous donne la longueur d'une chaîne.

[email protected]:~$ expr length "my string"
9

Étant donné que la commande expr génère la longueur, vous devez la stocker dans une variable en utilisant la substitution de commande.

#!/bin/bash

str="my string"
length=$(expr length "$str")
echo "Length of my string is $length"

Maintenant, si vous exécutez ce script shell bash, il affichera la longueur :

[email protected]:~$ bash string.sh 
Length of my string is 9

Utiliser awk pour obtenir la longueur de la chaîne

AWK est une commande super polyvalente pour éditer du texte en ligne de commande Linux. Vous pouvez également l'utiliser pour calculer la longueur de la chaîne.

Vous devrez utiliser la commande echo puis utiliser la redirection de canal pour l'analyser avec awk :

[email protected]:~$ echo "my string" | awk '{print length}'
9

Comme vous pouvez le voir, à moins que vous ne connaissiez les bases de la commande awk, il n'est pas facile de se souvenir de la syntaxe.

Utilisation de la commande wc pour calculer la longueur de la chaîne

Une autre façon d'obtenir la longueur de la chaîne sous Linux consiste à utiliser la commande wc. Maintenant, la commande wc est utilisée pour compter le nombre de lignes, de caractères dans un fichier.

Vous pouvez faire écho à la chaîne et la diriger vers la commande wc. Le -m l'option donne le nombre de caractères.

[email protected]:~$ echo -n "my string" | wc -m
9

Remarquez le -n option avec la commande echo ? C'est important car echo ajoute automatiquement un caractère de nouvelle ligne \n à la fin et cela augmentera la longueur de la chaîne de un. Avec -n option, la commande echo n'ajoute pas de caractère de nouvelle ligne.

Vous pouvez utiliser la substitution de commande pour stocker la longueur de la chaîne dans une variable comme vous l'avez vu dans les exemples précédents.

#!/bin/bash

str="my string"
length=$(echo -n "my string" | wc -m)
echo "Length of my string is $length"

Personnellement, ${#string} est mon moyen préféré d'obtenir la longueur de la chaîne. Plus facile à retenir.

Et toi? Quelle méthode préférez-vous?


Linux
  1. Comment lire une chaîne en tant que numéro hexadécimal dans Bash ?

  2. Comment diviser une chaîne dans un script bash

  3. Comment supprimer un utilisateur d'un groupe sous Linux [Astuce rapide]

  4. Exemples de manipulation de chaînes Bash - Longueur, sous-chaîne, rechercher et remplacer

  5. Comment cat << EOF fonctionne-t-il dans bash?

Comment vérifier si une chaîne contient une sous-chaîne dans Bash

Comment trouver une chaîne dans un fichier sous Linux

Comment trouver l'ID de processus d'un programme et le tuer [Astuce rapide]

Comment ajouter de nouveaux pinceaux dans GIMP [Quick Tip]

Comment recadrer des images dans GIMP [Quick Tip]

Comment ajouter un répertoire à PATH sous Linux [Astuce rapide]