Suppression \n si dernier c
lineo
-
dubcek Messages postés 18627 Date d'inscription Statut Contributeur Dernière intervention -
dubcek Messages postés 18627 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Savez-vous comment supprimer en shell/bash le denier \n d'une variable ?
J'ai essayé avec du
D'avance, merci
Savez-vous comment supprimer en shell/bash le denier \n d'une variable ?
J'ai essayé avec du
sed -b 's/\n$//'mais ça n'a pas l'air d'être la bonne piste vu que sed est prévu à la base pour travailler par ligne
D'avance, merci
1 réponse
-
hello
$ var="abcd\n\n" ; echo -e ${var%\\n}
abcd
$ echo -e "$var"
abcd
$-
Salut,
Merci pour ta solution,
Désolé de répondre un peu tard,
Je me suis mal expliqué avec mon \n, en fait je cherche à supprimer le dernier "saut de ligne" dans une variable qui est multiligne. Pas de caractères spéciaux à interpréter avec un echo -e mais du texte brut.
(Et suppression uniquement s'il y a un caractère "saut de ligne" en dernier caractère, sinon on ne fait rien)
$ var="abcd
>
> "
$ echo "$var"
abcd
$ echo "${var%\\n}"
abcd
$ -
-
-
Merci pour cette solution efficace :)
Exactement ce que je cherchais
Le cat -A est pratique aussi mais il oblige à transformer à l'entrée et rétablir à la sortie, je cherchais quelquechose de plus simple (et avec un $ dans la variable il n'a pas l'air de faire la différence, et il ajoute un saut de ligne comme dernier caractère même quand il n'y en a pas, et le sed ne risque de me supprimer toutes les lignes vides?) -
-