Commande SED en Linux avec 15 exemples pratiques
- 811
- 150
- Jade Muller
Le 'Sed'
La commande est un outil essentiel pour manipuler le texte dans Linux. Il vous permet de rechercher des modèles dans un texte et d'effectuer diverses opérations sur le texte correspondant, comme le remplacer, le supprimer ou l'imprimer. Cette commande prend les entrées d'un fichier ou d'une entrée standard.
La commande SED par défaut n'apporte pas les modifications au fichier d'origine jusqu'à ce que vous ayez utilisé le -je
paramètre de ligne de commande. La commande alerte le texte et envoie le résultat à la sortie standard. Vous pouvez également rediriger le texte vers le fichier conformément aux exigences.
Dans cet article, nous fournirons 15 exemples pratiques d'utilisation du 'Sed'
commande pour effectuer diverses tâches.
Remplacer l'exemple des chaînes en utilisant SED
1. Remplacer la chaîne dans un fichier
Pour remplacer une chaîne dans un fichier, vous pouvez utiliser le 's / old_string / new_string / g'
commande. La syntaxe est:
12 | # Syntaxsed 'S / old_string / new_string / g' file_name |
Pour remplacer les chaînes dans un fichier à l'aide de la commande SED, utilisez le -je
Argument pour apporter les modifications en place. La chaîne de commande doit inclure la commande de substitut 'S', la chaîne d'origine et la chaîne de remplacement. Par exemple, pour remplacer toutes les instances de la chaîne «Apple» par la chaîne «banane» dans un fichier appelé fruits.txt, utilisez la commande suivante:
Voir l'exemple suivant:
fruits SED / pomme / banane / g '.SMS
Cette commande lit le contenu des «fruits.Txt ”Fichier et remplace toutes les occurrences du mot "pomme" avec le mot "banane" et imprime le texte résultant au terminal. Le g
dit à la commande de remplacer toutes les occurrences correspondantes à l'échelle mondiale dans le fichier.
Vous pouvez également apporter les modifications dans le même fichier avec le -je
option.
SED -I's / Apple / Banana / G 'Fruits.SMS
Vous verrez que le fichier d'origine est modifié. Vous pouvez également effectuer la sauvegarde S du fichier avant d'apporter des modifications dans le fichier d'origine.
sed -i.BAK'S / AMPLE / BANANA / G 'Fruits.SMS
Un fichier de sauvegarde de l'original sera créé dans le répertoire actuel avec nom des fruits.SMS.bak.
2. Remplacer la première occurrence de chaque ligne
Pour remplacer uniquement la première occurrence d'un motif sur chaque ligne, vous pouvez utiliser le s / motif / remplacement / commande. Par exemple, pour remplacer uniquement la première occurrence du mot «Apple» par le mot «banane» dans les fruits de fichier.txt, vous pouvez utiliser la commande suivante:
SED 'S / Apple / Banana /' Fruits.SMS
3. Remplacer la dernière occurrence de chaque ligne
Pour remplacer uniquement la dernière occurrence d'un motif sur chaque ligne, vous pouvez utiliser la commande s / motif / remplacement / g '. Par exemple, pour remplacer uniquement la dernière occurrence du mot «Apple» par le mot «banane» dans les fruits de fichier.txt ', vous pouvez utiliser la commande suivante:
sed 'S / \ (.* \) fruits Apple / \ 1banana / g '.SMS
4. Remplacer la chaîne à un numéro de ligne spécifique
Pour remplacer une chaîne sur une ligne spécifique, vous pouvez utiliser les liniens / motif / remplacement / commande. Par exemple, pour remplacer la première occurrence du mot «Apple» par le mot «banane» sur la ligne 3 des fruits de fichier.txt, vous pouvez utiliser la commande suivante:
Sed '3s / Apple / Banana /' Fruits.SMS
5. Remplacer la chaîne de la plage de numéros de ligne
Pour remplacer une chaîne sur une gamme de lignes, vous pouvez utiliser le startLineNumber, EndlineNumber / Match / Replacement / Commande. Par exemple, pour remplacer la première occurrence du mot «Apple» par le mot «banane» sur les lignes 3 à 5 des fruits de fichier.txt, vous pouvez utiliser la commande suivante:
Sed '3,5s / pomme / banane /' fruits.SMS
Suppression de lignes dans le fichier à l'aide de SED
6. Supprimer la première ligne du fichier
Pour supprimer une ligne contenant une certaine chaîne, vous pouvez utiliser la commande / motif / d. Par exemple, pour supprimer toutes les lignes qui contiennent le mot «Apple» dans les fruits de fichier.txt, vous pouvez utiliser la commande suivante:
fruits SED '1D'.SMS
7. Supprimer la ligne contient une certaine chaîne
Pour supprimer une ligne contenant une certaine chaîne, vous pouvez utiliser le '/ Pattern / D'
commande. Par exemple, pour supprimer toutes les lignes qui contiennent le mot «Apple» dans les fruits de fichier.txt, vous pouvez utiliser la commande suivante:
fruits sed '/ pomme / d'.SMS
8. Supprimer les lignes sauf la chaîne correspondante
Pour inverser les lignes correspondantes, vous pouvez utiliser le '!'
opérateur en combinaison avec d'autres commandes. Par exemple, pour supprimer toutes les lignes qui contiennent le mot «Apple» dans les fruits de fichier.txt, vous pouvez utiliser la commande suivante:
sed '/ Apple /!D 'fruits.SMS
9. Supprimer la gamme de lignes
Pour supprimer une gamme de lignes, vous pouvez utiliser le startLineNumber, EndlineNumberd
commande. Par exemple, pour supprimer les lignes 3 à 5 du fichier des fruits.SMS
, Vous pouvez utiliser la commande suivante:
fruits sed '3,5d'.SMS
dix. Supprimer les lignes vides du fichier
Vous pouvez supprimer les lignes vides du fichier en utilisant '/ ^ $ / d'
option.
Sed '/ ^ $ / d' fruits.SMS
Cette commande considère une ligne vide, qui ne contient aucun caractère, même un seul espace.
Imprimer les lignes du fichier à l'aide de SED
11. Numéros de ligne d'impression uniquement
Pour imprimer uniquement les numéros de ligne des lignes correspondantes, vous pouvez utiliser le '/ motif / ='
commande. Par exemple, pour imprimer les numéros de ligne de toutes les lignes qui contiennent le mot «Apple» dans les fruits de fichier.txt, vous pouvez utiliser la commande suivante:
Sed '/ Apple / =' Fruits.SMS
12. Imprimez la plage de fichiers
Pour imprimer une gamme de lignes, vous pouvez utiliser le 'START, ENDP'
commandes. Par exemple, pour imprimer les 10 premières lignes des fruits de fichier.txt, vous pouvez utiliser la commande suivante:
fruits sed -n '1,10p'.SMS
Insertion de lignes à fichier à l'aide de SED
13. Insérer une nouvelle ligne après le modèle de correspondance
Pour insérer une ligne après un certain motif, vous pouvez utiliser le '/ motif / a \ newline'
commande. Par exemple, pour insérer la ligne «Grapes» après la ligne qui contient le mot «Apple» dans les fruits de fichier.txt, vous pouvez utiliser la commande suivante:
fruits sed '/ pomme / a \ grape.SMS
14. Insérez une nouvelle ligne avant le modèle de correspondance
Pour insérer une ligne avant un certain motif, vous pouvez utiliser le '/ Pattern / i \ newline'
commande. Par exemple, pour insérer la ligne «raisins» avant la ligne qui contient le mot «Apple» dans les fruits de fichier.txt, vous pouvez utiliser la commande suivante:
fruits sed '/ pomme / i \ grapes.SMS
Autres tâches utilisant SED
15. Changer le cas des personnages
Pour changer le cas d'une chaîne, vous pouvez utiliser le 'y / old / nouveau /'
commande. Par exemple, pour changer toutes les lettres minuscules en majuscules dans les fruits de fichier.txt, vous pouvez utiliser la commande suivante:
sed 'y / abcdefghijklmnopqrstuvwxyz / abcdefghijklmnopqrstuvwxyz /' fruits.SMS
Conclusion
Nous espérons que ces exemples ont été utiles pour vous montrer la polyvalence de la commande SED. N'oubliez pas que SED est un outil très puissant et il est important de tester attentivement vos commandes avant de les utiliser sur des fichiers importants. Si vous avez des questions ou avez besoin d'aide supplémentaire, n'hésitez pas à demander. Avec ces exemples pratiques à votre actif, vous serez en bonne voie de maîtriser la commande SED et de devenir un administrateur Linux compétent.
- « En démarrage avec la ligne de commande Linux le début
- Trier la commande dans Linux avec des exemples pratiques »