GNU/Linux >> Tutoriels Linux >  >> Linux

Supprimer les séquences barre oblique inverse + retour à la ligne ?

Cette question a déjà des réponses ici :Comment combiner toutes les lignes qui se terminent par un antislash ?

(9 réponses)
Fermé il y a 2 ans.

Nous avons un fichier sous Linux qui contient une ligne par enregistrement, mais le problème survient lorsque la ligne contient des caractères de nouvelle ligne. Dans ce cas, la barre oblique inverse est ajoutée à la fin de la ligne et l'enregistrement est divisé en plusieurs lignes. Voici donc mon problème :

"abc def xyz pqr"

devrait être :

"abc def xyz pqr"

J'ai essayé sed -I 's/\n/ /g' <file_name> qui ne fonctionne pas. J'ai aussi essayé le tr commande mais elle ne remplace qu'un seul caractère, pas la chaîne. Pouvez-vous s'il vous plaît suggérer une commande pour gérer ce problème.

Réponse acceptée :

Vous devriez pouvoir utiliser

sed -e :a -e '/\$/N; s/\n//; ta'

Voir l'explication des célèbres One-Liners Sed de Peter Krumins, partie I, 39. Ajouter une ligne à la suivante si elle se termine par un antislash "" .


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

  2. Sed Supprimer les caractères de la nouvelle ligne ?

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

  4. Comment supprimer des fichiers et des répertoires dans la ligne de commande Linux [Tutoriel du débutant]

  5. Supprimer une certaine ligne du fichier historique de Bash

Comment commenter dans Bash

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

Commande Diff sous Linux

Comment désinstaller complètement des applications en ligne de commande dans Ubuntu

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