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.