Suppressions des retours à la ligne
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.
.
Commentaires
Leduc Benjamin (non vérifié)
ven, 22/03/2019 - 10:13
Permalien
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.
ronan
sam, 23/03/2019 - 09:16
Permalien
Bonjour
Je vous assure que le code fonctionne correctement.
La preuve avec cygwin sous Windows.
Philippe (non vérifié)
mar, 02/04/2019 - 10:59
Permalien
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.
Ajouter un commentaire