Commande SED pour supprimer les lignes dans un fichier

Commande SED pour supprimer les lignes dans un fichier

Dans la plupart des cas, lorsque vous travaillez avec un fichier texte, il est susceptible d'avoir des espaces vides. Ces espaces vides peuvent aller de quelques caractères à un certain nombre de lignes vides ou n'ont aucune information. Garder ces fichiers avec des espaces inutiles peut prendre du temps et gênant. Il peut y avoir plusieurs raisons de garder ces fichiers, mais la meilleure façon de les gérer est de supprimer les lignes vides. Cet article explore la commande Unix Sed et son utilisation en supprimant les lignes vides dans un fichier.

Qu'est-ce que SED?

SED signifie éditeur de flux. C'est un éditeur de ligne de commande non interactif. Il est principalement utilisé pour l'édition et le filtrage des fichiers. SED est le plus souvent utilisé dans les scripts, où il est utilisé pour éditer un seul fichier ou plusieurs fichiers séquentiellement. SED peut être utilisé pour effectuer une séquence d'actions d'édition sur un seul fichier ou un groupe de fichiers. Il peut être utilisé pour supprimer les lignes et les mots dans un fichier, remplacer les mots et même ajouter du texte à des emplacements spécifiques dans un fichier.

Dans ce tutoriel, vous découvrirez la commande Linux SED pour supprimer les lignes d'un fichier basé sur les arguments. N'oubliez pas que la commande par défaut n'apporte aucune modification dans le fichier d'origine. Si vous souhaitez supprimer des fichiers dans le même fichier, utilisez des options «-i» avec des commandes.

1. Supprimer la première ligne du fichier

Vous pouvez utiliser le '1d' Option pour supprimer la première ligne du fichier. Par exemple, vous avez un fichier CSV et souhaitez supprimer la ligne de titre. Utilisez la commande suivante pour supprimer la première ligne avec SED.

SED '1D' FILE_NAME  

Ici '1' représenter la première ligne et le 'd' est utilisé pour supprimer. Alors combinant le '1d' Supprime la première ligne du fichier. Voir l'exemple ci-dessous:

Exemple de commande SED pour supprimer la première ligne du fichier

Vous pouvez voir que le 'Sed' Commande a supprimé la première ligne de la sortie.

2. Supprimer la dernière ligne du fichier

Utilisez le paramètre de privilège «$ d» avec SED pour supprimer la dernière ligne ou la ligne de pied de page d'une amende. La commande suivante supprimera la dernière ligne du fichier_name.fichier csv.

Sed '$ d' file_name 

Dans la commande ci-dessus '$' représenter la dernière ligne du fichier et 'd' est de supprimer cette ligne.

Exemple de commande SED pour supprimer la dernière ligne du fichier

3. Supprimer une ligne spécifique par numéro

Vous pouvez spécifier le numéro de ligne suivi de 'd' Pour supprimer cette ligne spécifique. Par exemple, pour supprimer le 5ème fichier du fichier, exécutez:

SED '5D' FILE_NAME.CSV  

4. Supprimer la gamme de lignes

SED permet également de supprimer une gamme de lignes du fichier. Nous pouvons spécifier la ligne de départ et le numéro de ligne de fin avec une commande séparée. Voyons l'exemple ci-dessous:

SED '2,5d' file_name 

La commande ci-dessus supprimera le numéro de ligne de 2 à 5 du fichier donné.

5. Supprimer des lignes autres que la première ligne

Utilisez la négation (!) Opérateur avec l'option D dans la commande SED. La commande SED suivante supprime toutes les lignes à l'exception de la ligne d'en-tête.

Sed '1!D 'file_name 

6. Supprimer des lignes autres que la dernière ligne

Utilisez la négation (!) Opérateur avec l'option D dans la commande SED. La commande SED suivante supprime toutes les lignes à l'exception de la ligne d'en-tête.

sed '$!D 'file_name 

7. Supprimer des lignes autres que la plage spécifiée

Utilisez la négation (!) Opérateur avec l'option D dans la commande SED. La commande SED suivante supprime toutes les lignes à l'exception de la ligne d'en-tête.

Sed '2,5!D 'file_name 

8. Supprimer la première et la dernière ligne

sed '1d; $ d' file_name 

9. Supprimer les lignes vides ou les lignes vierges

La commande SED peut être utilisée pour supprimer les lignes vides dans un fichier texte. Pour ce faire, vous pouvez utiliser la commande suivante:

sed '/ ^ $ / d' file_name  

La commande ci-dessus supprime toutes les lignes vides du fichier spécifié. Toute ligne contient un seul espace n'est pas considéré comme une seule ligne.

dix. Supprimer les lignes qui commencent par le caractère spécifié

nombres sed '/ ^ t / d'.CSV 

11. Supprimer les lignes qui se terminent avec le caractère spécifié

Numéros Sed '/ T $ / d'.CSV 

12. Supprimer les lignes qui contiennent un motif

Nombres SED '/ Pattern / D'.CSV 

Conclusion

Il y a toujours un besoin de nettoyer les fichiers texte avant le traitement ultérieur, car ils peuvent avoir des caractères indésirables, tels que l'onglet, la nouvelle ligne, l'espace, etc. SED propose un certain nombre de façons de supprimer les lignes, les mots ou même les caractères d'un fichier. Mettez simplement l'opération souhaitée dans l'invite de commande, et vous avez terminé!