Bash, c’est puissant, mais parfois, ça fait chier pour pas grand chose

Twitter Facebook Google Plus Linkedin email
closeCet article a été publié il y a 2 ans 8 mois 21 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées, les commandes ne sont peut-être plus valides.

Un autre titre aurait été « Comment des guillemets (ou leur absence) peuvent vous pourrir la vie« , ça aurait été pareil. En ce dimanche 2à Septembre où je commence à écrire ce billet, lendemain d’une soirée particulièrement riche en évènements, je découvre dans mon fil Twitter un appel à l’aide datant de deux jours, sur un problème en Bash. Quoi de mieux pour dé-saouler que de s’y mettre ?

Décrivons le symptôme

Lorsqu’on fait une recherche avec find, il affiche chaque résultat sur une ligne différente :

Jusqu’à ce qu’on essaie de stocker ces résultats dans une variable, dans laquelle ils se retrouvent alors tous collés les uns à la suite des autres :

Et mine de rien, remettre ça sur plusieurs lignes, c’est pas facile, surtout un dimanche matin.

Tentatives râtées

sed, awk, rien n’y fait, soit je vide la ligne, ce qui est très con, soit ça change rien. Et surtout, si par malheur il y a des espaces dans les noms de dossiers (hein les Windowsiens…), ben on risque de casser encore plus le truc. Sans parler du fait qu’avec sed vous risquez de modifier le contenu du fichier plutôt que mettre en forme son nom. Pas top.

Une solution tellement simple qu’on y pensera jamais

C’est en essayant les différentes méthodes pour stocker le contenu des variables que la solution s’est présentée à moi. Reprenons la méthode habituelle pour le stockage de résultat :

Première étape, on rajoute simplement des guillemets autour :

Et donc pour l’affichage, on rajoute là aussi des guillemets :

Presque vingt minutes quand même pour loger ça. Moralité, pas nécessairement besoin de chercher à faire compliqué, la solution peut parfois être très simple. Et en plus ça m’a évité une balade dans une brocante alors que la dernière chose que j’avais envie de faire était de faire fonctionner mes jambes 😀

5
Poster un Commentaire

avatar
2 Comment threads
3 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
4 Comment authors
Seboss666KrapaceMaxence MaireauxDjerfy Recent comment authors
  Subscribe  
plus récents plus anciens
Me notifier des
Djerfy
Invité

Ou avec un truc bien crade aussi :

result=$(find . -type d); echo $result | tr  »  » « n »

😀

Maxence Maireaux
Invité

Bizzare exactement ce que j’allais dire … Tu m’a vraiment appris des trucs pas propres xD

Krapace
Invité
Krapace

Comme quoi les trucs de base c’est parfois trop simple pour etre pensé. Et desolé de t’avoir « imposé » ca un dimanche matin >_<