GNU/Linux >> Tutoriels Linux >  >> Linux

Sed Supprimer les caractères de la nouvelle ligne ?

Après quelques traitements, j'ai mon fichier d'entrée comme ci-dessous.

fichier1.txt

12345|john|student
43321|jack|professor

78965|alex|lecturer

J'ai besoin de traiter davantage le fichier ci-dessus et j'ai donc également besoin d'un disjoncteur de ligne à la fin de la ligne. Actuellement, je peux l'accomplir comme ci-dessous.

sed 's/$/|/' file1.txt

La commande ci-dessus donne la sortie sous la forme,

12345|john|student|
43321|jack|professor|
|
78965|alex|lecturer|

Comme nous pouvons le voir, le | est également ajouté aux lignes vides. Quand j'ai essayé de supprimer le | caractère à nouveau à partir de lignes vides en utilisant la commande ci-dessous,

sed 's/|//g' file1.txt

Le | le personnage est supprimé partout. Comment puis-je supprimer uniquement le | en lignes vides ? Je dois également conserver la ligne vide.

Réponse acceptée :

À partir de votre original, vous pouvez ajouter | aux lignes qui ne sont pas vides :

Utilisation de sed :

sed -e '/^$/!s/$/|/' file

Utiliser perl :

perl -lpe 's/$/|/ if length' file

Si vous souhaitez supprimer | à partir de lignes vides (dans la deuxième version) :

perl -lpe 's/|// if length == 1'

Linux
  1. Comment supprimer les lignes vides d'un fichier (y compris les tabulations et les espaces) ?

  2. Sed peut-il remplacer les caractères de nouvelle ligne ?

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

  4. Supprimer la ligne contenant une certaine chaîne et la ligne suivante ?

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

Supprimer le répertoire sous Linux - Comment supprimer un dossier de la ligne de commande

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

Comment supprimer les caractères (^M) d'un fichier sous Linux

Comment supprimer tous les espaces blancs d'un fichier texte

Supprimer les packages Android SDK de la ligne de commande

Supprimer une certaine ligne du fichier historique de Bash