Commande SED en Linux avec 15 exemples pratiques

Commande SED en Linux avec 15 exemples pratiques

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:

# Syntax SED 'S / OLD_STRING / NEW_STRING / G' FILE_NAME
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.