'?' est utilisé pour correspondre à n'importe quel caractère unique. Vous pouvez utiliser '?' pour plusieurs fois pour faire correspondre plusieurs caractères.
Exemple 1:
Supposons que vous souhaitez rechercher ces noms de fichiers de texte dont les noms sont longs et l'extension est .SMS. Vous pouvez appliquer un modèle global en utilisant '?'Quatre fois pour faire cette tâche.
Découvrez la liste de tous les fichiers et dossiers du répertoire actuel.
$ ls -l
Exécutez la commande suivante Recherchez les fichiers dont les noms sont de quatre caractères et inconnus.
$ ls -l ????.SMSExemple-2:
Supposons que vous souhaitez rechercher ces fichiers de document dont les noms sont de 8 caractères, les 4 premiers caractères sont f, o, o et t et l'extension est doc. Exécutez la commande suivante avec un modèle global pour rechercher les fichiers.
$ ls -l pied????.doc
Exemple-3:
Supposons, vous savez que le nom de fichier est 'meilleur' Et l'extension mesure 3 caractères, mais je ne connais pas l'extension. Exécutez la commande suivante en utilisant '?«Pour rechercher tous les fichiers avec le nom« test »ayant une extension de trois caractères.
$ ls -l meilleur.???
Astérisque - (*)
'*' est utilisé pour correspondre à zéro ou plus de caractères. Si vous avez moins d'informations pour rechercher un fichier ou des informations, vous pouvez utiliser '*' en schéma global.
Exemple 1:
Supposons que vous souhaitez rechercher tous les fichiers de 'PL' extension. Exécutez la commande suivante en utilisant '*' Pour faire cette tâche.
$ ls -l *.PL
Exemple-2:
Supposons que vous connaissiez le caractère de départ du nom de fichier uniquement qui est 'un'. Exécutez la commande suivante en utilisant '*' pour rechercher tous les fichiers du répertoire actuel dont les noms sont démarrés avec 'un'.
$ ls -l a *.*
Exemple-3:
Vous pouvez appliquer '*' dans le script bash à diverses fins sans rechercher des fichiers. Créer un fichier bash nommé 'vérifier.sh ' avec le script suivant. Ici, lorsque l'utilisateur tapera 'y 'ou' y 'ou' oui 'ou' oui ' alors 'confirmé' Imprimera et quand le type tapera 'n' ou 'n' ou 'non' ou 'non' alors 'Pas confirmé' Will imprimer.
#!/ bac / bash
Echo "Voulez-vous confirmer?"
lire la réponse
Case $ Réponse dans
[Yy] *) echo "Confirmé.";;
[Nn] *) echo "Non confirmé.";;
*) ECHO "Ressayer.";;
ESAC
Exécutez le script.
$ bash chèque.shot
Bracket carré - ([])
'[]' est utilisé pour correspondre au caractère de la gamme. Certaines des déclarations de plage principalement utilisées sont mentionnées ci-dessous.
Tous les alphabets majuscules sont définis par la gamme comme, [: supérieur:] ou [a-z] .
Tous les alphabets minuscules sont définis par la gamme comme, [: inférieur:] ou [a-z].
Tous les chiffres numériques sont définis par la plage comme, [: chiffre:] ou [0-9].
Tous les alphabets majuscules et inférieurs sont définis par la plage comme, [: alpha:] ou [a-za-z].
Tous les alphabets majuscules, l'alphabet en minuscules et les chiffres sont définis par la plage comme, [: alnum:] ou [a-za-z0-9]
Exemple 1:
Exécutez la commande suivante pour rechercher tous les fichiers et dossiers dont le nom contient p ou q ou r ou s.
$ ls -l [p-s] *
Exemple-2:
Exécutez la commande suivante pour rechercher tous les fichiers et dossiers dont le nom commence par n'importe quel chiffre de 1 à 5.
$ ls -l [1-5] *
Caret - (^)
Vous pouvez utiliser '^' avec le crochet pour définir plus spécifiquement le motif global. '^' peut être utilisé à l'intérieur ou à l'extérieur de la crochet. '^' est utilisé à l'extérieur du support carré pour rechercher le contenu du fichier qui commence par une plage de caractères donnée. '^' est utilisé à l'intérieur du support pour afficher tout le contenu du fichier en mettant en évidence les lignes de début avec une gamme de caractères donnée . Vous pouvez utiliser différents types de modèles globbing pour rechercher un contenu particulier à partir d'un fichier. 'grep' La commande est utilisée pour la recherche de contenu en bash. Supposons que vous ayez un fichier texte nommé 'liste.SMS' avec le contenu suivant. Testez les exemples suivants pour ce fichier.
PommeExemple 1:
Exécutez la commande suivante pour rechercher ces lignes à partir de liste.SMS le fichier qui commence par P ou Q ou R.
$ grep '^ [p-r]' liste.SMSExemple - 2:
Exécutez la commande suivante pour mettre en surbrillance ces lignes de liste.SMS le fichier qui commence par A ou B ou C.
$ grep '[^ a-c]' liste.SMSSigne exclamatoire - (!)
Vous pouvez utiliser '!' À l'intérieur du modèle de plage. Cela fonctionne comme l'utilisation du symbole '^' en dehors du motif de plage. Quelques exemples d'utilisation '!' le signe est donné ci-dessous.
Exemple 1:
Exécutez la commande suivante pour afficher ces lignes de liste.SMS le fichier qui commence par 'P' ou Q ou R.
$ grep [!Liste P-R].SMSExemple - 2:
Exécutez la commande suivante pour afficher ces lignes de liste.SMS fichier qui commence par n'importe quel chiffre à partir de 4 à 8.
$ grep [!4-8] liste.SMSSigne en dollars - ($)
'$' est utilisé pour définir le caractère final. Si vous savez que vous souhaitez rechercher des informations basées sur le dernier caractère, vous pouvez utiliser '$' en schéma global.
Exemple 1:
Exécutez la commande suivante pour rechercher ces lignes à partir de liste.SMS le fichier qui se termine avec 'un'.
$ grep Une liste de $.SMSExemple - 2:
Exécutez la commande suivante pour rechercher ces lignes à partir de liste.SMS Fixer qui se termine par le numéro 50.
$ grep 50 $ liste.SMSCurly Bracket - ()
'' peut être utilisé pour faire correspondre les noms de fichiers avec plus d'un modèle global. Chaque motif est séparé par «» dans un support bouclé sans aucun espace. Quelques exemples sont donnés ci-dessous.
Exemple 1:
Exécutez la commande suivante pour rechercher les fichiers dont les noms mesurent 5 caractères et l'extension est 'sh' ou les deux derniers caractères des fichiers sont 'St' Et l'extension est 'SMS'.
$ ls -l ?????.sh, * st.SMSExemple - 2:
Exécutez la commande suivante pour supprimer tous les fichiers dont les extensions sont 'doc' ou 'docx'.
$ rm *.Doc, *.docx
Tuyau- (|)
'|' Le signe est également utilisé pour appliquer plus d'une condition sur le motif global. Chaque motif est séparé par '|' symbole dans la commande.
Exemple 1:
Exécutez la commande suivante pour rechercher les noms de fichiers qui commencent par le caractère «a» et a l'extension «bash» ou «sh».
$ ls a * + (.bash |.sh)
Exemple - 2:
Créer un fichier bash nommé 'menu.frapper' et ajouter le script suivant. Si le type d'utilisateur 1 ou s Ensuite, il imprimera «Recherche de texte». Si le type d'utilisateur 2 ou R Ensuite, il imprimera "Remplacement du texte". Si le type d'utilisateur 3 ou D Ensuite, il imprimera «Suppression de texte". Il imprimera "Essayer à nouveau" pour toute autre entrée.
#!/ bac / bash
ECHO "Sélectionnez n'importe quelle option dans le menu:"
lire la réponse
Case $ Réponse dans
1 | S) Echo "Recherche de texte" ;;
2 | R) echo "Remplacement du texte" ;;
3 | D) Echo "Suppression de texte" ;;
*) ECHO "Ressayer.";;
ESAC
Exécutez le script.
Menu $ bash.frapper
Certains des modèles globbing les plus couramment utilisés sont expliqués dans ce tutoriel en utilisant des exemples très simples. J'espère qu'après avoir pratiqué les exemples ci-dessus, le concept de globbing sera clair pour vous et vous pourrez l'appliquer dans les commandes et les scripts de bash.
Pour plus d'informations, consultez cette vidéo: