Bonjour,
j'ai eu plusieurs fois besoin de supprimer des espaces en début et fin de fichier. Sur le web, on trouve des commandes à base de tr
, plus ou moins complètes selon la page consultée.
Pour résoudre plus définitivement ce problème, je me suis écrit un script python (pour des raisons de lisibilité et de facilité) qui agit comme un filtre.
On obtient un comportement du type:
echo " a "|trim -> "a" sur la sortie standard
J'ai deux options pour supprimer uniquement à gauche ou uniquement à droite.
- Est-ce que vous connaissez un vrai outil qui fait ça bien ? (Pas juste un bout de code à adapter.)
- Si non, est-ce que vous pensez qu'il y a un intérêt à ce que je le publie ?
# sed
Posté par Nasga . Évalué à 3.
La commande sed permet de résoudre ton problème.
C'est performant et on trouve pas mal de documentation sur le net.
Par exemple (non testé) :
[^] # plus court
Posté par Krunch (site web personnel) . Évalué à 4.
Il manque évidemment un backslash 1 [0] mais même avec ça, ta solution n'est pas correcte car * est gourmand et la gourmandise va de gauche à droite :
Donc une solution correcte en Perl :
Ou, si on veut utiliser la même approche (mais c'est plus long) :
man perlre
Je suis curieux de voir la solution Python de srb.
[0] https://linuxfr.org/suivi/impossible-de-mettre-des-backspaces-dans-les-commentaire-sans-user-de-subterfuges-abscons
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
[^] # Re: plus court
Posté par srb (site web personnel) . Évalué à 1.
J'avais écrit un script d'une cinquantaine de ligne pour gérer les paramètres en ligne de commande et qui utilisait les fonctions strip(), rstrip() ou lstrip() fournies en standard par Python.
Merci à tous, ça me confirme dans l'idée qu'aucune solution qui s'est imposée. Je vais prendre les fonctions shell de Flyounet et les coller dans mon .bashrc, car elles répondent exactement à mon besoin.
# Sinon en mieux …
Posté par goofy . Évalué à 0.
il y a detox :
http://linux.die.net/man/1/detox
[^] # Re: Sinon en mieux …
Posté par -=[ silmaril ]=- (site web personnel) . Évalué à 0.
Detox s'occupe des noms de fichiers pas de leur contenu...
Personnellement j'utilise rename d'ailleurs pour faire le boulot de detox
# En Bash ou Ksh
Posté par Flyounet (site web personnel) . Évalué à 1.
Comme on a pas toujours tout d'installer sur une machine...
Voici 3 petites fonctions à utiliser :
Comme ça pas de binaires exotiques...
Et si t'es plus volontaire (mais juste en bash) Qui peut facilement se remplacer dans les fonctions ci dessus:
Si ça t'interresse j'ai quelques fonctions plus ou moins utiles là : http://code.flyou.net/dev/unstable/F01common.lib/
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.