Copier/coller depuis un terminal sans espaces superflus !

Ça m’arrive régulièrement, comme à beaucoup, de devoir copier/coller le résultat de commandes d’un terminal vers ailleurs (par exemple le forum).
Mais certaines commandes ont tendance à rajouter des espaces superflus en fin de ligne (hein, aptitude ? :013).
Quand c’est pour coller dans la plupart des éditeurs de texte ça passe encore, ils ont quasiment tous une option “supprimer les espaces de fin” ou au minimum un rechercher/remplacer par expressions régulières, donc on peut s’en sortir.
Mais c’est pour le forum que ça devient plus gênant, surtout lorsqu’on veut entourer le tout d’un bloc [ code ]… Les espaces superflus provoquent alors parfois des sauts de ligne intempestifs, bref, pas terrible.

Du coup j’avais fait un petit script qui s’occupe de supprimer les espaces superflus soit au début des lignes, à la fin, ou les deux :

[code]# cat > /usr/local/bin/trim << EOF
#!/bin/sh
case “$1” in

Effacer à gauche : -b (begin) ou -l (left)

-b|-l)
sed ‘s@^[ \t]+@@g
;;

Effacer à droite : -e (end) ou -r (right)

-e|-r)
sed ‘s@[ \t]+$@@g
;;

Effacer les deux

*)
sed ‘s@^[ \t]+@@g;s@[ \t]+$@@g
;;
esac
EOF

chmod +x /usr/local/bin/trim[/code]

On peut aussi rajouter les alias suivants à son ~/.bashrc :

alias ltrim='trim -l' alias rtrim='trim -r'

Du coup, plus besoin de s’emmerder la vie à supprimer les espaces gênants (sur mon écran en 1920 de large les deux premières lignes de résultat s’affichent comme si j’avais sauté une ligne entre chaque, à cause des espaces superflus, alors qu’en réalité il n’en est rien ; et si je réduis la fenêtre horizontalement la distance entre ces lignes augmente encore) :

$ aptitude search ~ilinux-image -F '%p' linux-image-3.0.0-2-amd64 linux-image-amd64 $ aptitude search ~ilinux-image -F '%p' | rtrim linux-image-3.0.0-2-amd64 linux-image-amd64

Et bien entendu, ça sert aussi dans plein d’autres cas que pour le forum. :wink:

Hello :033

Intéressant, tu peux remplacer tes [ \t] par des [[:blank:]]dans tes sed

By-by