(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 "" .