Suppressions des retours à la ligne

Suppressions des retours à la ligne

By ronan, 12 mars, 2015

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.

.

Etiquettes

Leduc Benjamin (not verified)

il y a 5 ans 11 mois

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.

ronan

il y a 5 ans 11 mois

In reply to by Leduc Benjamin (not verified)

Je vous assure que le code fonctionne correctement.

La preuve avec cygwin sous Windows.

Philippe (not verified)

il y a 5 ans 10 mois

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.