Comment supprimer les lignes d'un fichier à l'aide de la commande SED

Comment supprimer les lignes d'un fichier à l'aide de la commande SED
La commande SED est connue comme un éditeur de flux. La commande SED est utilisée dans Linux pour effectuer une transformation de texte de base.

L'une des nombreuses commandes essentielles de Linux est également la commande SED qui joue un rôle vital dans la manipulation des fichiers. Il est utilisé à de nombreuses fins; Certains des principaux sont les suivants.

Supprimer ou supprimer cette ligne particulière qui correspond aux modèles donnés.

  • Suppression des lignes avec des expressions régulières.
  • En fonction de la position d'un fichier, supprimez une ligne spécifique.

Donc, si vous songez à supprimer les lignes d'un fichier en utilisant la commande SED, veuillez lire notre article du début à la fin. Nous vous donnerons un mémoire sur les méthodes pour supprimer les lignes

Comment supprimer les lignes d'un fichier à l'aide de la commande SED?

Nous utiliserons la commande SED sans -I dans cet article car c'est un article de démonstration. Une méthode similaire est l'option «Dry Run», qui affiche toutes les valeurs du fichier sans apporter de modifications.

En utilisant la commande sed, nous pouvons supprimer les lignes en fonction de l'environnement en utilisant -I.

Pour afficher la commande SED, nous créons un fichier appelé Linuxhintos.SMS. Afin de fournir de meilleures informations, nous incluons ces numéros de ligne dans le contenu suivant.

Suppression des lignes d'un fichier basé sur la position

Cette pièce expliquera en utilisant la commande SED pour supprimer les lignes d'un fichier 'Linuxhintos.txt 'en fonction de sa position.

Tout d'abord, ouvrez le fichier à l'aide de la commande suivante:

chat ~ // /

Exécutez maintenant la commande ci-dessous pour supprimer la première ligne:

fichier sed 'nd'

Dans la commande ci-dessus:

N- Ligne «nième» dans un fichier

D- Suppression du fichier

Alors, exécutons cette commande dans notre exemple pour supprimer la 10e ligne du fichier texte:

Documents de CD
SED '10D' Linuxhintos.SMS

Supprimer la dernière ligne d'un fichier

Si nous devons supprimer la dernière ligne du fichier, au lieu de 'n' dans la syntaxe utilisée ci-dessus, nous utiliserons '$.'Ici, $ représente la dernière ligne.

fichier sed '$ d'

Après cela, notre fichier passera à quelque chose comme ça.

Retirez la première ligne et la dernière ligne ensemble

Si nous voulons supprimer les première et dernière lignes, nous devons combiner les deux commandes ci-dessus.

Sed 'nd; $ d' nom de fichier

Avec cette commande, nos deux et dernières lignes sont supprimées du fichier simultanément.

Comme vous pouvez le voir dans l'image ci-dessus, la première et la dernière ligne ont été supprimées du fichier texte.

Supprimer une gamme de lignes

La commande SED peut supprimer les lignes de n'importe quelle gamme. Pour cela, nous devons simplement entrer des numéros de ligne «minimum» et «maximum».

Dans cet exemple, nous supprimerons les lignes allant de 4 à 7 nombres.

Fichier SED '4,7d'

Après avoir retiré ces gammes de lignes, notre fichier ressemblera à ceci.

Supprimer plusieurs lignes

SED peut également supprimer plusieurs lignes dans un ensemble. Comme vous pouvez le voir, nous avons supprimé les troisième, sixième, huitième et dernière lignes de cet exemple.

SED '3d; 6d; 8d; fichier $ d'

Lors de l'application de la commande SED écrite ci-dessus, les modifications suivantes se produisent dans notre fichier 'Linuxhintos.SMS'.

Suppression de lignes autres que la ligne spécifiée ou la plage de lignes spécifiée

À travers la commande sed, nous supprimons ces lignes des fichiers qui ne sont pas définis dans la commande, je.e., Les lignes autres que celles décrites sont supprimées.

De ce fichier, nous supprimerons les lignes restantes en dehors des numéros 4 à 7.

Sed '4,7! D 'fichier

Ici, le signe de «!»Représente que nous ne devons pas supprimer la ligne de ce numéro spécifique du fichier.

! - utilisé pour conserver le nombre spécifique de lignes du fichier

Après cela, notre fichier ressemblera à ceci:

Retirez les lignes vides ou vides

La commande SED écrite ci-dessous supprime les lignes vides ou vides du fichier approprié.

fichier sed '/ ^ $ / d'

Puisqu'il n'y a pas de lignes vierges ou vides dans notre fichier, aucune modification n'a eu lieu:

Supprimer les lignes du fichier en fonction du modèle

Dans la deuxième partie, nous verrons qu'avec l'aide de la commande SED, comment nous supprimons les lignes d'un modèle similaire.

Suppression des lignes qui contiennent un motif

Dans l'exemple, la commande suivante supprime les lignes correspondant au modèle «système» du fichier 'Linuxhintos.SMS'.

Fichier SED '/ System / D'

Nous devons donc supprimer ces lignes qui n'ont «pas disponible». C'est pourquoi nous exécuterons la commande ci-dessous:

sed '/ non disponible / d' Linuxhintos.SMS

Retrait des lignes qui contiennent une ou plusieurs chaînes

Grâce à la commande SED, nous pouvons supprimer les lignes correspondant au modèle «non mis à jour» ou «non disponible» à partir du fichier 'Linuxhintos.txt 'et cette commande est quelque chose comme ceci:

sed '/ non mis à jour \ | non disponible / D' Linuxhintos.SMS

Supprimer les lignes qui commencent par un personnage spécifique

Nous pouvons supprimer toutes les lignes en commençant par n'importe quel caractère via la commande SED. Nous avons créé un nouveau fichier nommé 'Linuxhintos.txt 'avec le contenu suivant:

La commande SED ci-dessous supprimera toutes les lignes à commencer par le caractère 'A'.

fichier sed '/ ^ a / d'

Nous supprimerons ces lignes de notre fichier, qui commencent par «a» et «l». Pour lequel nous utiliserons la commande suivante.

SED '/ ^ [AL] / D' Fichier

En utilisant SED, nous supprimons toutes les lignes commençant par «A» et se terminant par la chaîne «Linux».

sed '/ ^ (a).* (Linux) / D 'fichier

Supprimer les lignes qui se terminent par un caractère spécifié

Cette commande SED supprime toutes les lignes se terminant par «m."

fichier sed '/ m $ / d'

La commande SED suivante supprimera les lignes se terminant par des caractères «M» et «X».

fichier sed '/ [xm] $ / d'

Les lignes de caractères se terminant par «m» et «x» sont supprimées de notre fichier; Ensuite, notre fichier ressemblera à ceci.

Supprimer toutes les lignes qui commencent par des majuscules

Nous supprimerons toutes ces lignes du fichier à l'aide de la commande suivante: une lettre majuscule.

SED '/ ^ [A-Z] / D' Fichier

Après avoir appliqué la commande ci-dessus, toutes les lignes de notre fichier qui ont commencé avec des lettres majuscules seront supprimées, et le changement dans notre fichier sera comme ça.

Supprimer une ligne de modèle correspondante avec une plage spécifiée

À l'aide de la commande suivante, nous ne supprimerons que ces lignes de certaines lignes définies avec un modèle spécifique.

Cet exemple ne supprime que les lignes avec des modèles Linux du fichier entre 1 et 6 lignes.

SED '1,6 / linux / d; fichier

Après avoir appliqué la commande, notre fichier 'sed - Demo-1.txt 'ressemblera à quelque chose comme ça.

Nous supprimerons la deuxième ligne avec la commande SED suivante uniquement si elle contient le motif «OpenSuse».

SED '2 / OpenSUSE / D;' Fichier

La commande appropriée supprimera la deuxième ligne de notre fichier 'sed - Demo-1.txt 'car il a un modèle spécifique de «opensuse."

La commande appropriée supprimera la deuxième ligne de notre fichier 'sed - Demo-1.txt 'car il a un modèle spécifique de «opensuse."

Nous pouvons également supprimer la ligne correspondant au modèle «système» et la ligne suivante dans le fichier à l'aide de la commande SED.

SED '/ System / n; D;' Fichier

Retirez les lignes ayant des modèles spécifiques

Vous pouvez supprimer toutes les lignes suivant le modèle «CentOS» en utilisant la commande SED.

SED '/ CENTOS /, $ D' Fichier

Suppression des lignes contenant des nombres / chiffres

Avec la commande SED écrite ci-dessous, nous pouvons supprimer toutes les lignes contenant du chiffre.'

Fichier SED '/ [0-9] / D'

En apportant quelques modifications dans la commande SED, nous supprimerons toutes ces lignes du fichier qui commencent avec seulement des chiffres.

SED '/ ^ [0-9] / D' Fichier

Après cette commande, toutes les lignes qui commencent par des chiffres seront supprimées de notre fichier.

Encore une fois, en apportant quelques modifications dans la commande, nous supprimerons uniquement ces lignes du fichier qui se termine par un chiffre.

fichier sed '/ [0-9] $ / d'

Suppression des lignes contenant des caractères alphabétiques d'un fichier

Avec la commande SED, nous supprimerons toutes les lignes du fichier 'LinuxHintos.txt, 'qui contiennent des caractères alphabétiques.

Fichier SED '/ [A-ZA-Z] / D'

Conclusion

Cet article montre plusieurs exemples de suppression des lignes d'un fichier à l'aide de la commande SED. Nous voyons comment avec l'aide de la commande SED, nous pouvons facilement supprimer toutes les lignes des fichiers. Si nous nous souvenons de ces commandes, alors nous économions beaucoup de temps tout en réduisant.