Recherche de site Web

Comment remplacer uniquement la première occurrence de correspondance à l’aide de la commande sed


La commande sed, abréviation de stream editor, est un outil puissant dans les systèmes Unix et Linux utilisé pour l’analyse et la transformation de texte. L’une des tâches courantes effectuées avec sed est la substitution, qui consiste à remplacer des occurrences d’un motif spécifique dans un fichier ou un flux. Toutefois, dans certains cas, vous pouvez uniquement substituer la première occurrence d’un modèle. Cet article vous guidera tout au long du processus de substitution de la première occurrence de correspondance à l’aide de la commande sed en détail.

Dans ce tutoriel, vous allez apprendre :

  • Comment créer un fichier sandbox pour tester les commandes sed
  • Comment utiliser sed pour substituer uniquement la première occurrence d’un motif

Dans cet article, nous allons voir comment substituer uniquement la première occurrence de correspondance d’un motif à l’aide de la commande sed. Nous allons d’abord créer un fichier de bac à sable sur lequel nous entraîner, puis explorer différentes méthodes pour atteindre notre objectif.

Création d’un fichier Sandbox

Pour commencer, nous avons besoin d’un fichier sur lequel tester nos commandes sed. Créons un fichier nommé sandbox.txt avec le contenu suivant :

cat > sandbox.txt << EOL
This is a sample text file.
This file is used to demonstrate sed commands.
This line is another example line.
This is the last line.
EOL

Le code ci-dessus crée un fichier nommé sandbox.txt avec quatre lignes de texte. Nous allons utiliser ce fichier pour tester nos commandes sed.

Méthode

  1. Utilisation de sed pour substituer uniquement la première occurrence : Pour substituer uniquement la première occurrence du mot ligne par LINE, nous utilisons la commande suivante :

    sed '0,/line/s/line/LINE/' sandbox.txt
    

    Cette commande fonctionne comme suit :

    La plage 0,/line/ indique à sed d’appliquer la substitution uniquement entre le début du fichier (ligne 0) et la première occurrence du mot « ligne ». La commande s/line/LINE/ est la commande de substitution qui remplace line par LINE.

    Le résultat de cette commande sera :

    Comme vous pouvez le voir, seule la première occurrence de ligne dans la troisième ligne est remplacée par LINE.

  2. Utilisation de sed avec une plage spécifiée : Une autre méthode pour substituer uniquement la première occurrence d’un motif consiste à utiliser une plage spécifiée :

    sed '1,/line/s/line/LINE/' sandbox.txt
    

    Cette commande fonctionne comme suit :

    La plage 1,/line/ indique à sed d’appliquer la substitution à partir de la ligne 1 jusqu’à la première occurrence du mot ligne. La commande s/line/LINE/ est la commande de substitution qui remplace line par LINE.

    Le résultat de cette commande sera :

  3. Encore une fois, seule la première occurrence de line est remplacée par LINE.

Conclusion

L’utilisation de la commande sed pour substituer uniquement la première occurrence d’un motif peut être très utile dans les tâches de traitement de texte. En créant un fichier sandbox et en utilisant des commandes sed spécifiques, vous pouvez contrôler et effectuer efficacement des substitutions ciblées dans vos fichiers. Expérimentez ces méthodes pour devenir plus compétent avec sed et améliorer vos compétences en traitement de texte.

Articles connexes: