Comment utiliser la commande SED avec Regex

Comment utiliser la commande SED avec Regex

La commande SED a une longue liste d'opérations prises en charge qui peuvent être effectuées pour faciliter le processus de modification des fichiers texte. Il permet aux utilisateurs d'appliquer les expressions qui sont généralement utilisées dans les langages de programmation; L'une des expressions prises en charge est l'expression régulière (regex).

Le regex est utilisé pour gérer le texte à l'intérieur des fichiers texte, à l'aide de regex, un modèle qui se compose de chaîne et ces modèles sont ensuite utilisés pour faire correspondre ou localiser le texte. Le regex est largement utilisé dans les langages de programmation tels que Python, Perl, Java et son support est également disponible pour des programmes de ligne de commande tels que Grep et plusieurs éditeurs de texte comme SED.

Bien que la recherche et le tri simples puissent être effectués à l'aide de la commande SED, l'utilisation de regex avec SED permet une correspondance de niveau avancé dans les fichiers texte. Le regex fonctionne sur les directions des caractères utilisés; Ces caractères guident la commande SED pour effectuer les tâches dirigées. Dans cet article, nous démontrerons l'utilisation de Regex avec la commande SED et suivie des exemples qui montreront l'application de Regex.

Comment utiliser Regex dans SED

Cette section est la partie fondamentale de l'écriture qui contient l'explication détaillée des expressions régulières dans le contexte SED: commençons par

Faire correspondre le mot

Si vous souhaitez trouver le mot qui correspond exactement aux caractères, vous devez spécifier les caractères exacts qui correspondent au mot: par exemple, nous avons un fichier texte qui contient la liste des fabricants d'ordinateurs portables nommés «ordinateurs portables.SMS»:

Obtenons le contenu du fichier en utilisant la commande mentionnée ci-dessous:

$ ordinateurs portables Cat.SMS

Utilisez la commande suivante aidera à obtenir le «Acer" mot:

$ sed -n '/ acer / p' ordinateurs portables.SMS

Correspondant à tous les mots commencent par un caractère spécifique

Ce support Regex contient plusieurs actions décrites dans cette section:

Si vous souhaitez rechercher et faire correspondre les mots qui démarre et se terminent avec un personnage spécifique, vous devez utiliser "*«Connectez-vous entre les personnages pour le faire; Mais il est remarqué que le «*"Symbole imprime les mots qui commencent par un seul ou multiple"Comme"Mais avec un seul"R»: Par exemple, la commande écrite ci-dessous imprimera tous les mots qui commencent par un seul ou multiple«UN"Et se termine par un seul"R»:

$ sed -n '/ a * r / p' ordinateurs portables.SMS


Pour correspondre au mot qui se termine par un caractère spécifique ou qui ne contient que un caractère spécifié: la commande écrite ci-dessous affichera les mots avec le caractère "P"Ou le mot exact"HP»:

$ sed -n '/ h \?P / P 'ordinateurs portables.SMS

Correspondant aux mots avec un caractère spécifique

Il est remarqué que vous pouvez obtenir les mots qui contiennent n'importe quel caractère à l'aide de la commande SED: Par exemple, la commande mentionnée ci-dessous trouvera les mots qui contient l'un de ces caractères «A», «H» ou «D»:

$ sed -n '/ [ahd] / p' ordinateurs portables.SMS

Correspondant à la chaîne

Vous pouvez utiliser la commande SED avec des expressions régulières pour imprimer les chaînes; Vous pouvez soit imprimer toutes les chaînes, soit cibler une chaîne spécifique en utilisant le caractère de démarrage ou de fin de cette chaîne:

nous avons utilisé "déposer.SMS«Pour l'utiliser comme exemple dans cette section; Ce fichier contient le contenu suivant:

$ CAT Fichier.SMS

Par exemple, si vous souhaitez imprimer toutes les chaînes; La commande suivante vous aidera à cet égard:

$ sed -n '/.Fichier \ + / p '.SMS

Si vous voulez obtenir toutes les chaînes qui commencent par le personnage "un«Ensuite, vous devez utiliser le symbole de carotte (^) Pour indiquer le caractère de départ de la chaîne.

La commande mentionnée ci-dessous jusqu'à imprimer les chaînes qui commencent par «@»:

$ sed -n '^ @' fichier.SMS

De plus, si vous voulez obtenir uniquement les chaînes qui se terminent par un personnage spécifique, vous devez utiliser "$"Avec ce personnage. Par exemple, la commande écrite ici imprimera les chaînes qui se termineront par «#»:

$ sed -n '/ # $ / p' fichier.SMS

Correspondant aux lignes vides

Le support Regex de la commande SED permet à l'utilisateur d'imprimer / supprimer les lignes vides en utilisant «/ ^ $ /» La commande suivante imprimera les lignes vides dans "ordinateurs portables.SMS" déposer:

$ sed -n '/ ^ $ / p' ordinateurs portables.SMS

Ou vous pouvez supprimer en remplaçant "p" avec "d”Dans la commande ci-dessus comme affiché ci-dessous:

$ sed -n '/ ^ $ / d' ordinateurs portables.SMS

Faire correspondre le boîtier des lettres

La commande SED permet aux utilisateurs de manipuler les mots avec un cas de lettre spécifique:

Par exemple, vous pouvez imprimer, supprimer, remplacer les mots de cas de lettre en utilisant la commande SED:

Un fichier texte nommé comme «test.SMS»Est utilisé dans cet exemple, le contenu de ce fichier est imprimé en utilisant la commande suivante:

$ test de chat.SMS

Correspondant aux lettres minuscules

La commande suivante imprimera tous ces mots qui contiennent des lettres en minuscules:

$ sed -n '/ [a-z] / p' test.SMS

Correspondant aux lettres majuscules

Ou vous pouvez imprimer les mots qui contient des lettres de case supérieur en émettant la commande suivante dans le terminal:

$ sed -n '/ [a-z] / p' test.SMS

Conclusion

Les expressions régulières (regex) sont appelées; Tout mot ou séquence de caractères qui est utilisé pour obtenir les mots correspondants de n'importe quel fichier texte. Ils fournissent un soutien étendu à plusieurs langages de programmation ainsi qu'aux commandes ou programmes Ubuntu. Parallèlement à ce regex, Ubuntu prend en charge les commandes étendues qui facilitent le processus d'exécution des tâches fastidieuses. L'utilité de ligne de commande SED d'Ubuntu vous permet d'effectuer plusieurs tâches fastidieuses très facilement pour effectuer plusieurs opérations sur des fichiers texte. Nous avons compilé ce guide pour éclairer les avantages de rejoindre Regex avec SED; Cette coentreprise fournit une correspondance et une recherche de niveau avancé dans les fichiers texte. Les expressions régulières ont besoin de l'aide de caractères utilisés pour faire correspondre diverses tâches telles que la suppression, l'impression, la substitution ou la gestion du texte dans les fichiers texte.