éditeur de streaming (sed ) est un outil important lorsque vous travaillez avec l'analyse et la transformation de texte dans vos systèmes basés sur nix. Il est utilisé pour la recherche, le filtrage, la substitution de texte et les manipulations de texte telles que l'insertion, la suppression, le remplacement et la recherche dans les fichiers texte.
[ Vous pourriez également aimer :Comment utiliser Sed pour rechercher et remplacer une chaîne dans des fichiers ]
Dans la plupart des distributions Linux, la commande sed est préinstallée et vous pouvez la vérifier à l'aide des commandes suivantes, qui afficheront l'emplacement binaire de la commande et la version.
$ which sed $ sed --version
Ici, dans cet article, je vais vous montrer comment supprimer des lignes d'un fichier à l'aide de la commande sed à l'aide d'un exemple de fichier contenant 7 lignes. Je vais utiliser ce fichier à des fins de démonstration.
$ cat testfile.txt First line second line Third line Fourth line Fifth line Sixth line SIXTH LINE
Comment supprimer une ligne d'un fichier
Pour supprimer la ligne d'un fichier, vous pouvez utiliser la commande ci-dessous. Vous devez remplacer 'N'
avec le numéro de ligne et 'd'
est de supprimer la ligne.
$ sed 'Nd' testfile.txt
Si vous devez supprimer la quatrième ligne du fichier, vous devez remplacer N=4
.
$ sed '4d' testfile.txt
Comment supprimer la première et la dernière ligne d'un fichier
Vous pouvez supprimer la première ligne d'un fichier en utilisant la même syntaxe que celle décrite dans l'exemple précédent. Il faut mettre N=1
qui supprimera la première ligne.
$ sed '1d' testfile.txt
Pour supprimer la dernière ligne d'un fichier en utilisant la commande ci-dessous avec ($)
signe indiquant la dernière ligne d'un fichier.
$ sed '$d' testfile.txt
Comment supprimer une plage de lignes d'un fichier
Vous pouvez supprimer une plage de lignes d'un fichier. Supposons que vous souhaitiez supprimer les lignes de 3 à 5, vous pouvez utiliser la syntaxe ci-dessous.
M
– numéro de ligne de départN
– Numéro de ligne de fin
$ sed 'M,Nd' testfile.txt
Pour supprimer réellement, utilisez la commande suivante pour le faire.
$ sed '3,5d' testfile.txt
Vous pouvez utiliser !
symbole pour annuler l'opération de suppression. Cela supprimera toutes les lignes sauf la plage donnée (3-5).
$ sed '3,5!d' testfile.txt
Comment supprimer les lignes vides d'un fichier
Pour supprimer toutes les lignes vides d'un fichier, exécutez la commande suivante. Un point important à noter est l'utilisation de cette commande, les lignes vides avec des espaces ne seront pas supprimées. J'ai ajouté des lignes vides et des lignes vides avec des espaces dans mon fichier de test.
$ cat testfile.txt First line second line Third line Fourth line Fifth line Sixth line SIXTH LINE
$ sed '/^$/d' testfile.txt
Dans l'image ci-dessus, vous pouvez voir que les lignes vides sont supprimées mais que les lignes contenant des espaces ne sont pas supprimées. Pour supprimer toutes les lignes, y compris les espaces, vous pouvez exécuter la commande suivante.
$ sed '/^[[:space:]]*$/d' testfile.txt
[ Vous pourriez également aimer :Comment supprimer des lignes vides dans des fichiers à l'aide de Grep, Sed et Awk ]
Comment supprimer des lignes commençant par des mots dans un fichier
Pour supprimer une ligne qui commence par un certain mot, exécutez la commande suivante avec ^
le symbole représente le début du mot suivi du mot réel.
$ sed '/^First/d' testfile.txt
Pour supprimer une ligne qui se termine par un certain mot, exécutez la commande suivante. Le mot à supprimer suivi du $
le symbole supprimera les lignes.
$ sed '/LINE$/d' testfile.txt
Comment apporter des modifications directement dans un fichier
Pour apporter les modifications directement dans le fichier à l'aide de sed vous devez passer -i
drapeau qui apportera les modifications directement dans le fichier.
$ sed -i '/^[[:space:]]*$/d' testfile.txt
Nous sommes arrivés à la fin de l'article. Le sed La commande jouera un rôle majeur lorsque vous travaillez sur la manipulation de fichiers. Lorsqu'il est combiné avec d'autres utilitaires Linux comme awk , grep vous pouvez faire plus de choses avec sed .