accueil > Traitement et recherche de texte > sed

sed : éditeur de flux de texte

sed (stream editor) est un utilitaire Unix puissant pour éditer des flux de texte. Il effectue des transformations, filtrages, suppressions et insertions de texte en utilisant des expressions régulières sur l'entrée provenant de fichiers ou de pipes. Optimisé pour l'édition non interactive, il est largement utilisé pour le traitement automatisé de texte dans les scripts.

Aperçu

sed lit l'entrée (fichier ou entrée standard) ligne par ligne, applique les scripts (commandes) spécifiés, puis envoie le résultat à la sortie standard. Il est principalement utilisé pour modifier le contenu des fichiers texte, rechercher et remplacer des motifs spécifiques, et supprimer des lignes.

Fonctionnalités principales

  • Correspondance de motifs puissante avec des expressions régulières
  • Substitution de texte
  • Suppression de lignes
  • Insertion et ajout de lignes
  • Modification directe du contenu des fichiers (option -i)

Options principales

Les options principales de la commande sed contrôlent la manière dont les scripts sont spécifiés ou le comportement de la sortie.

Contrôle des scripts et du comportement

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 à traiter du texte grâce à divers exemples d'utilisation de sed.

Remplacer une chaîne de caractères spécifique

sed 's/old_text/new_text/g' filename.txt

Remplace toutes les occurrences de 'old_text' par 'new_text' dans le fichier. Le drapeau 'g' remplace toutes les correspondances sur une ligne.

Supprimer les lignes contenant un motif spécifique

sed '/error/d' logfile.txt

Supprime toutes les lignes contenant le mot 'error'.

Modifier le contenu du fichier sur place

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

Modifie 'DEBUG=true' en 'DEBUG=false' dans le fichier original 'config.txt' et crée un fichier de sauvegarde avec l'extension '.bak'.

Afficher uniquement les 5 premières lignes

sed -n '1,5p' data.txt

Affiche uniquement les 5 premières lignes du fichier. Utilise l'option '-n' et la commande '1,5p'.

Supprimer les lignes vides

sed '/^$/d' document.txt

Supprime les lignes complètement vides du fichier.

Conseils et précautions

Points à considérer et astuces pour une utilisation efficace de sed.

Malentendu sur l'option sed -d

Concernant l'indice 'sed-d' fourni, `-d` n'est pas une option de ligne de commande valide pour `sed`. La commande `sed` utilise des options telles que `-e`, `-f`, `-i`, `-n`. Si vous exécutez `sed -d`, `sed` interprétera `-d` comme un nom de fichier plutôt qu'une option, ou générera une erreur d'option inconnue.

Utilisation correcte de la commande d

`d` est une commande utilisée dans le script `sed` pour supprimer des lignes spécifiques. Par exemple, `sed '/pattern/d' filename` supprime toutes les lignes contenant 'pattern'. Ceci est complètement différent de l'option de ligne de commande `-d`.

Exemple d'utilisation de la commande d

sed '/chaîne_à_supprimer/d' input.txt > output.txt

Supprime les lignes contenant 'chaîne_à_supprimer' du fichier.

Utilisation des expressions régulières

La puissance de sed réside dans les expressions régulières. La maîtrise de divers métacaractères (par exemple, `^`, `$`, `*`, `+`, `?`, `.` etc.) permet des correspondances et des substitutions de motifs complexes.

  • `^` : début de ligne
  • `$` : fin de ligne
  • `.` : n'importe quel caractère unique
  • `*` : le caractère précédent est répété 0 ou plusieurs fois
  • `s/ancien/nouveau/g` : remplace toutes les occurrences de 'ancien' par 'nouveau'
  • `/motif/d` : supprime les lignes contenant 'motif'

Habituez-vous à créer des fichiers de sauvegarde

Lorsque vous modifiez des fichiers directement avec l'option `-i`, il est toujours recommandé de spécifier un suffixe de sauvegarde pour éviter la perte du fichier original (par exemple, `sed -i.bak ...`).



Commandes de la même catégorie