Ubuntu - Linux : Gestion des fichiers avec la ligne de commandes
Table des matières:
- Utilisation de caractères génériques
- Utilisation de l'opérateur de cas
- Utilisation de l'opérateur Regex
- Utilisation de Grep
- Conclusion
L'une des opérations les plus courantes lorsque vous travaillez avec des chaînes dans Bash est de déterminer si une chaîne contient ou non une autre chaîne., nous allons vous montrer plusieurs façons de vérifier si une chaîne contient une sous-chaîne.
Utilisation de caractères génériques
L'approche la plus simple consiste à entourer la sous-chaîne de symboles génériques astérisque (astérisque)
*
et à la comparer avec la chaîne. Le caractère générique est un symbole utilisé pour représenter zéro, un ou plusieurs caractères.
Si le test renvoie
true
, la sous-chaîne est contenue dans la chaîne.
Dans l'exemple ci-dessous, nous utilisons l'instruction if et l'opérateur d'égalité (
==
) pour vérifier si la sous-chaîne
SUB
est trouvée dans la chaîne
STR
:
#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if]; then echo "It's there." fi
Une fois exécuté, le script affichera:
Utilisation de l'opérateur de cas
Au lieu d'utiliser l'instruction if, vous pouvez également utiliser l'instruction case pour vérifier si une chaîne inclut ou non une autre chaîne.
#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' case $STR in *"$SUB"*) echo -n "It's there.";; esac
Utilisation de l'opérateur Regex
Une autre option pour déterminer si une sous-chaîne spécifiée se produit dans une chaîne est d'utiliser l'opérateur regex
=~
. Lorsque cet opérateur est utilisé, la chaîne de droite est considérée comme une expression régulière.
La période suivie d'un astérisque
.*
Correspond à zéro ou plusieurs occurrences de n'importe quel caractère à l'exception d'un caractère de nouvelle ligne.
#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if]; then echo "It's there." fi
Le script fera écho aux éléments suivants:
Utilisation de Grep
La commande grep peut également être utilisée pour rechercher des chaînes dans une autre chaîne.
Dans l'exemple suivant, nous passons la chaîne
$STR
comme entrée à grep et vérifions si la chaîne
$SUB
se trouve dans la chaîne d'entrée. La commande renverra
true
ou
false
selon le cas.
#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if grep -q "$SUB" <<< "$STR"; then echo "It's there" fi
L'option
-q
dit à grep d'être silencieux, d'omettre la sortie.
Conclusion
Vérifier si une chaîne contient une sous-chaîne est l'une des opérations les plus élémentaires et les plus fréquemment utilisées dans les scripts Bash.
Après avoir lu ce didacticiel, vous devez avoir une bonne compréhension de la façon de tester si une chaîne inclut une autre chaîne. Vous pouvez également utiliser d'autres commandes comme
awk
ou
sed
pour les tests.
Satyam dit avoir reçu l'aval des régulateurs indiens pour offrir une participation de 51% dans un appel d'offres mondial Le sous-traitant indien, Satyam Computer Services, a déclaré vendredi avoir reçu la permission des régulateurs de vendre une participation de 51% dans la société dans le cadre d'un appel d'offres mondial.
Les soumissionnaires n'auront toutefois pas accès à une comptabilité détaillée parce qu'ils ont été reformulés à la suite d'une divulgation en janvier par le cofondateur de la société, B. Ramalinga Raju, selon laquelle les bénéfices avaient été surestimés pendant plusieurs années.
Comment accéder à un site FTP dans IE, lorsque l`URL contient des caractères spéciaux
Résoudre: Windows ne peut pas trouver `ftp : // nom d`utilisateur: mot de passe @ domaine `. Vérifiez l`orthographe et réessayez message d`erreur dans Internet Explorer.
Comment vérifier si un fichier ou un répertoire existe dans bash
Plusieurs fois lors de l'écriture de scripts Shell, vous pouvez vous retrouver dans une situation où vous devez effectuer une action selon qu'un fichier existe ou non. Dans Bash, vous pouvez utiliser la commande test pour vérifier si un fichier existe et déterminer le type du fichier.