Quelle est l'option G dans SED

Quelle est l'option G dans SED

"Le terme sed est une abréviation de rédacteur en chef. Dans Unix / Linux, le sed Commandez et transforme les flux (textes, dans la plupart des cas). C'est un outil de ligne de commande qui vient préinstallé dans chaque système Unix / Linux."

Dans ce guide, nous explorerons le g option dans sed.

Utilisation de base de SED

L'utilisation la plus courante de la commande SED est de trouver et de remplacer le contenu dans un flux donné. La structure de commande est la suivante:

$ sed 's ///'


Jetez un œil à l'exemple suivant:

$ echo "The Quick Brown Fox" | sed 's / le / le /'



Ici,

    • Le écho La commande imprime la chaîne donnée sur le Stdout. Bas, Stdout, stdin et stderr sont des flux de données intégrés.
    • Le sed Commande utilisations Stdout En tant que flux, fonctionne comme spécifié et imprime la sortie sur la console.

Si vous essayez de modifier un fichier texte, SED ne modifie pas le contenu du fichier par défaut. C'est pour éviter une perte de données accidentelle. Pour modifier directement le contenu d'un fichier, vous devez exécuter SED avec l'édition sur place.

L'option G dans SED

Lors de la recherche et du remplacement, le comportement par défaut de sed est de mettre fin à ses actions en trouvant la première instance. L'exemple suivant démontre parfaitement ce comportement:

$ echo "le le le" | sed 's / le / le /'



Ici,

    • En utilisant le écho commande, nous passons le même mot «le» plusieurs fois au sed commande.
    • Cependant, dans la sortie, seule la première instance de «le» est transformée en «le».

Pour demander à SED de transformer toutes les instances correspondantes du motif donné, nous devons ajouter l'option G. Mettez à jour la commande comme suit:

$ echo "le le le" | sed 's / le / le / g'



Maintenant, tous les cas de «les» sont changés en «le» correctement.

L'option G dans SED

Nous arrivons enfin au point de mise au point de ce guide. Tandis que le g L'option s'applique à la substitution du texte, la g L'option est utilisée dans un usage complètement différent.

En utilisant le g Option, nous pouvons ajouter l'espace de maintien pour l'espace de motif. En termes simples, nous pouvons ajouter de nouvelles lignes avant / après le modèle de correspondance.

Pour une démonstration, j'ai créé un exemple de fichier texte test.SMS:

chat << EOF > test.SMS
le
rapide
brun
le
renard
Eof


Espacement supplémentaire

Nous pouvons maintenant effectuer diverses opérations sur l'espacement du fichier. Par exemple, pour doubler le fichier, utilisez la commande suivante:

$ SED G Test.SMS



De même, nous pouvons tripler l'espace du fichier:

$ sed 'g; g' test.SMS



Ici,

    • Dans les deux cas, parce que nous ne fournissons aucun modèle à égaler, sed correspond à tous les textes du fichier.
    • Le sed La commande fonctionne ligne par ligne sur un flux de texte donné. Après avoir fait correspondre chaque ligne (car aucun modèle spécifique n'a été fourni), une nouvelle ligne est ajoutée.

Supprimer l'espacement supplémentaire

Nous pouvons également utiliser le g Option pour supprimer toutes les lignes vides et l'espace double:

$ sed 'g; g' test.txt | sed '/ ^ $ / d; g'

Insérer des lignes vides avant / après les matchs

Nous pouvons spécifier un modèle en utilisant une expression régulière et dire à Sed d'ajouter une ligne vide avant / après elle.

Le premier exemple sera d'ajouter une ligne vide sous le modèle de correspondance:

$ sed '/ le / g' Test.SMS



L'exemple suivant sera d'ajouter une ligne vide au-dessus du modèle de correspondance:

$ sed '/ le / x; p; x;' Test.SMS



Enfin, nous pouvons les combiner tous les deux ensemble pour insérer des lignes vierges autour du motif de correspondance:

$ sed '/ le / x; p; x; g;' test.SMS


Dernières pensées

Dans ce guide, nous avons réussi à avoir démontré diverses façons d'utiliser le g option avec sed Pour ajouter des espaces dans le texte. Cette technique peut être utile dans diverses situations, par exemple, distinguer les lignes spécifiques dans un journal de débogage.

Un énorme avantage de SED est son support d'expression régulière. En savoir plus sur SED avec Regex. La commande SED peut également être facilement intégrée dans les scripts shell.

Happy Computing!