Comment faire correspondre deux chaînes de caractères dans une ligne, ou n'importe où dans un fichier ou une sortie de commande ?
L'outil grep de la ligne de commande est incroyablement puissant et utile pour rechercher des correspondances dans des fichiers, trier du texte et des données, trouver des chaînes dans des fichiers volumineux, et bien d'autres choses encore. Une situation courante dans laquelle de nombreux utilisateurs de la ligne de commande peuvent se trouver est de chercher une correspondance grep pour deux chaînes de caractères différentes dans une seule ligne.
Vous pouvez utiliser grep dans le Terminal de MacOS pour cela, ou toute autre invite de ligne de commande basée sur unix, que ce soit Linux, Windows WSL, toute version de MacOS / Mac OS X, ou même un iOS/iPadOS rooté si vous êtes intéressé par ce genre de choses.
Utiliser grep pour faire correspondre deux chaînes de caractères sur la même ligne
Depuis la ligne de commande, essayez la syntaxe suivante pour que grep fasse correspondre deux chaînes de caractères sur la même ligne :
grep "string1" /path/to/file |grep "string2"
Par exemple, cela peut ressembler à ce qui suit :
grep "error" /var/log/messages |grep "critical"
Utilisation de grep pour faire correspondre deux chaînes de caractères n'importe où dans un fichier ou une sortie de commande
Une autre situation courante consiste à utiliser grep pour faire correspondre deux chaînes différentes contenues n'importe où dans un fichier ou dans la sortie d'une autre commande. Vous pouvez utiliser le drapeau -e à cette fin, comme suit :
grep -e String1 -e String2
Par exemple, pour la sortie d'une commande, vous pouvez utiliser la chaîne de commande suivante, qui correspond dans ce cas à "CurrentCapacity" et "MaxCapacity" :
ioreg -l| grep -e CurrentCapacity -e MaxCapacity
La ligne de commande est destinée aux utilisateurs avancés, mais grep est une commande assez indulgente et, si vous êtes novice en matière de ligne de commande, c'est une commande raisonnable à explorer et à étudier.
N'oubliez pas que vous pouvez également exclure des chaînes de caractères de grep si vous souhaitez affiner votre correspondance et la sortie de la commande.
Si vous avez une autre approche pour faire correspondre deux chaînes de caractères dans un fichier ou pour faire correspondre plusieurs chaînes de caractères dans une sortie de commande, partagez-la avec nous dans les commentaires ci-dessous.