Exemples SED de groupes de capture

Exemples SED de groupes de capture
Les opérations de traitement des fichiers texte jouent un rôle vital dans la vie quotidienne d'un utilisateur informatique afin de traiter le texte est courant parmi les utilisateurs de toutes les professions. Linux et ses distributions fournissent une variété d'outils et d'utilitaires de ligne de commande pour accéder et gérer des fichiers texte comme l'éditeur par défaut, VIM, Nano. Ces outils aident à modifier, supprimer, substituer, le texte dans les fichiers texte; Cependant, les utilisateurs doivent ouvrir le fichier à l'aide de l'un de ces éditeurs et effectuer manuellement les modifications qui doivent être apportées.

Il y a un autre éditeur bien connu connu sous le nom de «Éditeur de flux (SED)» L'utilitaire de ligne de commande SED d'Ubuntu fournit une prise en charge approfondie pour gérer les fichiers texte; Cet outil est classé dans les éditeurs les plus hauts en raison des fonctionnalités avancées qu'il propose tout en traitant des fichiers texte. La raison de sa popularité est une opération de commande d'une ligne: ce qui signifie qu'il peut gérer les fichiers texte à l'aide du terminal et que les utilisateurs n'ont pas à ouvrir et à modifier manuellement aucun fichier texte. Capturer Group fait référence à une autre caractéristique avancée de cet outil; La fonctionnalité de capture de groupe de SED permet à l'utilisateur d'obtenir la partie spécifique d'un fichier texte ou d'une ligne. Dans ce guide détaillé, nous avons brièvement décrit le concept de regroupement de capture, son travail et son utilisation avec SED.

Tout d'abord, nous aurons un aperçu approfondi des groupes de capture, puis nous allons procéder à son utilisation avec SED:

Alors, commençons le guide d'aujourd'hui:

Comment fonctionnent les groupes de capture

Comme indiqué ci-dessus, les groupes de capture sont la partie spécifique de toute ligne ou fichier texte. Il peut y avoir l'un des objectifs suivants derrière les groupes de capture:

  • Pour capturer les informations
  • Manipuler le texte pour une correspondance spécifique

Il peut être utilisé pour obtenir les informations de précision en recherchant la pièce spécifique à l'intérieur d'un fichier texte ainsi que les opérations de manipulation peuvent également être effectuées sur cette correspondance spécifique.

Comment faire des groupes de capture en utilisant la commande SED dans Ubuntu

Les groupes de capture dans SED sont formés en appliquant des parenthèses à des expressions régulières ou à l'opération que l'utilisateur souhaite effectuer. Par exemple, pour faire des groupes de capture, vous devez mettre des parenthèses comme «\ (» au début et «\)» à la fin d'une expression régulière spécifique:

En bref, le groupe de capture est utilisé pour prendre la partie spécifique du fichier de ligne, puis effectuer une opération sur ce groupe:

Les exemples à venir démontrent l'utilisation de groupes de capture à l'aide de la commande SED; Les exemples varient de la base au niveau avancé.

Capturer un groupe unique en utilisant la commande SED

La commande écrite ci-dessous capturera le mot «Bonjour«Et puis remplacez le mot qui se produit après («sed!") avec "Linuxhint»: Vous avez peut-être remarqué que le groupe de capture est enfermé dans l'expression des parenthèses« \(" et "\)".

$ echo bonjour sed! | sed 'S / \ (Hello \) sed!/ \ 1 Linuxhint / '

Capturer plusieurs groupes en utilisant la commande SED

La commande SED vous permet de capturer plusieurs groupes, puis d'effectuer l'opération sur ce groupe. Par exemple, la commande mentionnée ci-dessous capture et imprimera uniquement les groupes sélectionnés. Il est observé que les groupes de capture peuvent être appelés en leur attribuant un nom de commande:

Dans la partie écho de cette commande, trois distributions et un parent linux est placé, je.e., Au total quatre entrées: cependant, dans la commande SED, nous n'avons appelé que les groupes 1,2 et 3 dans l'ordre inverse. La sortie montre que seuls trois groupes sont imprimés dans l'ordre inverse tandis que «Feutre"Garde sa position d'origine:

$ echo Ubuntu Debian Linux Fedora | sed 's / \ (ubuntu \) \ (debian \) \ (Linux \) / \ 3 \ 2 \ 1 /'

Capturer des groupes d'expressions complexes

Disons que nous avons une expression qui contient des mots clés alphanumériques; Nous devons faire des groupes puis les imprimer dans n'importe quel ordre (inverse / normal). La commande ci-dessous montre que l'expression contient des mots clés alphanumériques; Nous avons fait des groupes des trois mots alphanumériques, puis avons affiché ces mots dans un ordre inverse:

Note: La même commande peut être utilisée en remplaçant «\w\w*" avec "[[: alnum:] _] \ 1, \»:

$ echo Linuxhint 123 CAPTURE_GROUPS | sed 's / \ (\ w \ w * \) \ (\ w \ w * \) \ (\ w \ w * \) / \ 3 \ 2 \ 1 /'

La commande ci-dessus contient des groupes de capture "\ (\ w \ w * \)» Ceux-ci fonctionnent pour les mots clés alphanumériques. Vous pouvez exécuter la commande ci-dessus en utilisant la classe de caractères alphanumériques comme groupe de capture. Par exemple, la commande mentionnée ci-dessous donnera la même sortie lorsque la classe de caractères alphanumérique est utilisée comme groupe de capture:

$ echo Linuxhint 123 CAPTURE_GROUPS | sed 's / \ ([[:: alnum:] _] \ 1, \ \) \ ([[: alnum:] _] \ 1, \ \) \ ([[:: alnum:] _] \ 1, \ \) / \ 3 \ 2 \ 1 / '

Conclusion

L'utilitaire de ligne de commande SED fournit des conseils détaillés pour traiter les fichiers texte à l'aide du terminal de ligne de commande; Cet éditeur peut être difficile à utiliser, mais à mesure que vous creusez dans les détails, vous trouverez qu'il est facile à comprendre et à postuler. De plus, ses fonctionnalités avancées facilitent le processus de manipulation et de gestion des fichiers texte; comme des expressions régulières et une capture de groupe. Dans cet article, nous avons épinglé le concept de groupes de capture dans SED; et a fourni l'utilisation approfondie en faisant référence à quelques exemples. Les groupes de capture sont très utiles, surtout lorsque vous avez de très grands fichiers texte et que vous souhaitez identifier le contenu spécifique de ces fichiers.