accueil > Traitement et recherche de texte > sed

Guide de la commande sed : Utilisation de l'éditeur de flux

La commande `sed` (éditeur de flux) est un puissant outil de traitement de texte non interactif utilisé pour modifier des flux de texte (entrée transmise par des fichiers ou des tuyaux). Il permet d'effectuer efficacement des opérations comme rechercher, remplacer, supprimer ou insérer du texte sans ouvrir de fichier. Elle est essentielle dans les scripts shell pour la transformation automatisée de texte. Grâce à ce guide, apprenez les bases de l'utilisation de la commande `sed` et les fonctionnalités avancées exploitant les expressions régulières.

Aperçu de sed

La commande `sed` lit une ligne à la fois depuis le flux d'entrée, la traite selon les règles spécifiées (script), puis envoie le résultat à la sortie standard. Par défaut, le fichier d'origine n'est pas modifié ; pour enregistrer les modifications, il faut utiliser la redirection (`>`) ou l'option `-i`.

Principales fonctions de sed

La commande `sed` est principalement utilisée pour les objectifs suivants :

Principaux domaines d'application

  • Remplacement/échange de texte: Remplace une chaîne spécifique dans un fichier par une autre chaîne. (Utilisation la plus courante)
  • Suppression/Ajout de lignes: Supprime les lignes contenant un certain modèle ou insère de nouvelles lignes à des emplacements spécifiques.
  • Correspondance de modèles et sortie: N'affiche que les lignes correspondant à un certain modèle ou traite uniquement un certain intervalle de lignes.
  • Changement de format de fichier: Convertit le format de fichiers texte ou réorganise les données.
  • Automatisation de scripts: Joue un rôle clé dans le traitement par lots de fichiers texte dans des scripts shell.

Structure de base de sed

La structure de base d'une commande `sed` est `sed [OPTIONS] 'script' [INPUT_FILE...]`. Ici, le 'script' a la forme `[adresse]commande[arguments]`, où la commande la plus importante est `s` (substituer).

Options principales de la commande sed

La commande `sed` propose diverses options pour le traitement des entrées, la spécification des scripts et le contrôle de sortie, permettant ainsi une édition de texte flexible.

1. Options de script et de traitement de fichiers

2. Indicateurs de commande de substitution (s)

3. Autres commandes utiles

Commande générée :

Essayez de combiner les commandes.

Description:

`sed` Exécute la commande.

Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.

Exemples d'utilisation

Apprenez à rechercher, remplacer et supprimer efficacement le contenu des fichiers texte à travers divers exemples d'utilisation de la commande `sed`.

Remplacer tous les 'old' par 'new' dans un fichier

sed 's/old/new/g' example.txt

Remplace tous les mots 'old' dans le fichier `example.txt` par 'new' et affiche le résultat à la sortie standard.

Modification directe du fichier avec remplacement de chaînes

sed -i.bak 's/DEBUG=true/DEBUG=false/' config.conf

Modifie directement 'DEBUG=true' en 'DEBUG=false' dans le fichier `config.conf` et crée une sauvegarde du fichier d'origine (avec l'extension `.bak`).

Supprimer une ligne à un numéro de ligne spécifique

sed '5d' log.txt

Supprime la 5ème ligne du fichier `log.txt` et affiche le résultat.

Supprimer des lignes dans une plage

sed '10,20d' document.txt

Supprime le contenu des lignes de la 10ème à la 20ème dans le fichier `document.txt` et affiche le résultat.

Supprimer des lignes contenant un certain modèle

sed '/WARNING/d' errors.log

Supprime toutes les lignes contenant le mot 'WARNING' dans le fichier `errors.log` et affiche le résultat.

Insérer une ligne d'en-tête dans le contenu du fichier

sed '1i\Name,Age,City' data.csv

Insère une nouvelle ligne d'en-tête au-dessus de la première ligne dans le fichier `data.csv`.

Supprimer les lignes vides

sed '/^$/d' text.txt

Supprime toutes les lignes vides dans le fichier `text.txt`. `^$` est l'expression régulière représentant une ligne vide.


Commandes de la même catégorie