Récapitulatifs des différentes manières de supprimer les retours à la ligne dans une chaine de caractères.
$ A=$(echo -e "Ceci est une chaine\navec des retours\nà la ligne.")
$ echo "$A"
Ceci est une chaine
avec des retours
à la ligne.
Avec la commande tr
Suppression du retour à la ligne :
$ tr -d "\n" <<< "$A"
Ceci est une chaineavec des retoursà la ligne.
Remplacement du retour à la ligne par un espace :
$ tr "\n" " " <<< "$A"
Ceci est une chaine avec des retours à la ligne.
Avec la commande sed
Suppression du retour à la ligne :
$ sed ':a;N;$!ba;s/\n//g' <<< "$A"
Ceci est une chaineavec des retoursà la ligne.
Remplacement du retour à la ligne par un espace :
$ sed ':a;N;$!ba;s/\n/ /g' <<< "$A"
Ceci est une chaine avec des retours à la ligne.
Avec la commande read
Suppression du retour à la ligne :
$ while read L; do printf "%s" "$L"; done <<< "$A"
Ceci est une chaineavec des retoursà la ligne.
Remplacement du retour à la ligne par un espace :
$ while read L; do printf "%s" "$L "; done <<< "$A"
Ceci est une chaine avec des retours à la ligne.
Avec la commande perl
Suppression du retour à la ligne :
$ perl -p -e 's/\n//' <<< "$A"
Ceci est une chaineavec des retoursà la ligne.
Remplacement du retour à la ligne par un espace :
$ perl -p -e 's/\n/ /' <<< "$A"
Ceci est une chaine avec des retours à la ligne.
Avec la commande paste
Suppression du retour à la ligne :
$ paste -s -d '' <<< "$A"
Ceci est une chaineavec des retoursà la ligne.
Remplacement du retour à la ligne par un espace :
$ paste -s -d ' ' <<< "$A"
Ceci est une chaine avec des retours à la ligne.
Avec la commande awk
Suppression du retour à la ligne :
$ awk 1 ORS='' <<< "$A"
Ceci est une chaineavec des retoursà la ligne.
Remplacement du retour à la ligne par un espace :
$ awk 1 ORS=' ' <<< "$A"
Ceci est une chaine avec des retours à la ligne.
.
Commande avec sed
Votre code ne fonctionne pas:
MachincBenjamin:Leduc_PCR_MiSeq-20190221R benjamin$ sed ':a;N;$!ba;s/\n/ /g' <<< "$A"
Ceci est une chaine
avec des retours
à la ligne.
Bonjour
Je vous assure que le code fonctionne correctement.
La preuve avec cygwin sous Windows.
commande Sed
Merci pour la commande qui supprime le linefeed
étendu sans problème au retour chariot sous linux ubuntu en bash
après quelques heures passées sur internet
Je suis content. Je n’ai plus qu’à assimiler les détails de la syntaxe.