GNU/Linux >> Tutoriels Linux >  >> Linux

Comment supprimer des lignes d'un fichier à l'aide de la commande Sed

é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épart
  • N – 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 .


Linux
  1. Comment extraire le fichier tar.gz sous Linux à l'aide de la ligne de commande

  2. Comment supprimer un utilisateur sous Linux à l'aide de la ligne de commande

  3. Suppression de lignes spécifiques d'un fichier dans la ligne de commande Linux

  4. Comment supprimer les mots en double d'un fichier texte brut à l'aide de la commande linux

  5. Comment utiliser sed pour supprimer uniquement les doubles lignes vides ?

Comment créer un fichier sous Linux à l'aide d'un terminal/ligne de commande

Comment supprimer des fichiers et des répertoires à l'aide de la ligne de commande Linux

Comment envoyer un e-mail avec une pièce jointe à partir de la ligne de commande

Supprimer efficacement les premières lignes d'un fichier texte ?

Comment supprimer plusieurs lignes aléatoires d'un fichier texte à l'aide de Sed ?

Comment supprimer un fichier sans utiliser rm ?