Forum Programmation.shell Problem avec les alias

Posté par  .
Étiquettes : aucune
0
14
mar.
2008
Bonjour,
il y a longtemps s'était posée sur linuxfr.org la question de gestion des espaces dans un pipe de commande de type locate nomdufichier | xargs cmd
3 solutions semblent interessantes
1) Redéfinir: IS=:$'\x0a' (j'aime pas du tout, c'est bien bourrin)
2) Utiliser la fonction locate --null et xargs --null. J'arrive pas à le faire marcher
3) Utiliser sed avec sed -e -p 's/ /\\ /g' entre le locate et le xargs.
En fait je pensais me diriger vers un alias xarg="sed -e -p 's/ /\\ /g'" | xargs",m ais ça marche pas.
N'étant ni un expert de sed, ni de bash en général, quelqu'un aurait une idée?
Merci
  • # --null

    Posté par  . Évalué à 2.

    Hello,

    les --null de locate et xargs ont été écrit pour répondre spécifiquement à ton besoin. L'idéal serait de comprendre pourquoi ça ne marche pas chez toi.
    Quels sont les symptomes ?
    N'aurais-tu pas des alias qui redifiniraient déjà locate et xargs qui empécheraient l'option --null de bien se comporter ?

    Tout autre solution serait du bricolage ...
    • [^] # Re: --null

      Posté par  . Évalué à 1.

      En fait la fonction marche, mais néanmoins les lignes ne sont ensuite plus séparées.
      En fait j'aimerai faire une comande locate -- null nomdelartiste | xargs --null mplayer, où locate me ressortirait plusieurs fichiers. Actuellement, avec cette syntaxe, mplayer va essayer de lire le fichier resultat1\nresultat, et non pas resultat puis resultat2. Je sais pas trop quoi faire du coup...
      • [^] # Re: --null

        Posté par  . Évalué à 1.

        Je viens de faire un essais chez moi, et j'ai l'impression que le problème viens de locate qui invoque en fait slocate qui ne connais pas cette option (elle n'est pas documentée), et l'ignore probablement pour être "compatible" avec locate.

        Pour le moment, je vois pas bien de solution, à moins de passer par un find -iname "*nom*" -print0, qui à l'inconvénient de ne pas avoir de "cache" comme locate.
        • [^] # Re: --null

          Posté par  . Évalué à 1.

          Effectviement nickel avec find -iname "*nom*" --print0 | xargs mplayer
          Je vais me contenter de ça avec un petit alias vers mon repertoire de zik
          Merci!

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.