• [^] # Re: hop hop

    Posté par . En réponse au journal Lister les programmes installés sur un (ou plusieurs) poste(s) sous Windows (XP ou 7). Évalué à 7.

    lst_src=$(mktemp -u)
    mkfifo $lst_src
    lst_dst=$(mktemp -u)
    mkfifo $lst_dst
    ssh prod "hadoop fs -ls $SRC_PREFIX/$PATERN" | sort | $lst_src &
    ssh rec "hadoop fs -ls $SRC_PREFIX/$PATERN" | sort | $lst_dst &
    files_to_upload=$( join lst_src -v lst_dst )
    rm $lst_src $lst_dst

    et encore ce n'est qu'une solution, tu peux aussi avoir une fonction qui te crée le pipe et te renvoie son nom (genre mkfifotemp)

    tu peux aussi faire une fonction qui va te renvoyer le pipe

    si tu veux éviter de passer par du mkfifo ou des descripteur de fichiers tu peux aussi utiliser la commande

    join <(cmd1) -v <(cmd2)

    ce qui te donnerai un

    recupLstFile(){ ssh 1ドル "hadoop fs -ls 2ドル/3ドル" | sort }
    files_to_upload=$( join <(recupLstFile("prod", $PREFIX, $PATERN ) -v \
     <(recupLstFile("rec", $PREFIX, $PATERN ) )

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent