Forum Programmation.shell generation par lot de datamatrix

Posté par  . Licence CC By‑SA.
Étiquettes :
0
9
sept.
2018

j'utilise dmtxwrite afin de creer des datamatrix, ça marche plutôt pas mal

http://libdmtx.wikidot.com/libdmtx-faq

il prend soit l'entrée standard soit un fichier en entrée et sort soit en sortie standard soit en fichier.

afin de créer plein de datamatrix en une seule fois j'ai un fichier contenant par ligne le texte que je souhaite transformer pour avoir autant de datamatrix que de ligne. La je bute l'entrée standard de dmtxwrite

mes essais pour avoir trois datamatrix distinct à partir d'un fichier:

datamatrix$ cat test
az
er
rt

mon 1er script :
for i in cat test ; do dmtxwrite < echo $i -o "$i.png" ; done (fonctionne pas)

après avoir chercher il semblerais que soit plus opportun de faire :
for i in cat test ; do echo "$i" | dmtxwrite -o "$i.png" ; done

par contre j'ai une erreur : bash:  dmtxwrite : commande introuvable

une idée ? ou une piste ca m'irait

  • # Petite pièce sur fr-latin9

    Posté par  (site web personnel) . Évalué à 2.

    Aors je vais miser sur le fait que tu es avec la disposition de clavier fr, avec la variante latin9.

    Problème caractéristique : quand on tape un peu vite altgr+| suivi d'espace, on peut avoir altgr encore enfoncée quand l'espace est tapée. Cela donne une espace insécable avec cette disposition, et on essaie donc de lancer la commande  dmtxwrite plutôt que dmtxwrite, ce qui donne l'erreur « commande introuvable ».

    Pour éviter le souci, je privilégie la variante oss à la place de latin9, avec laquelle il faut taper altgr+shift+espace, ce qui limite les frappes involontaires (en plus de donner plein d'autres combinaisons/caractères).

    Debian Consultant @ DEBAMAX

    • [^] # Re: Petite pièce sur fr-latin9

      Posté par  . Évalué à 2.

      même problème avec la disposition bépo.

      Est-ce qu'il y a des polices d'écriture qui font une différence visuelle entre l'espace sécable normale et les espaces insécables ? Je sais que certains logiciels le propose mais pas forcément les terminaux de commande.

    • [^] # Re: Petite pièce sur fr-latin9

      Posté par  . Évalué à 2.

      bien joué, c’était ça ! le temps que cela m'a pris pour cette espace insécable ! pfiou ! je savais que je n’étais pas un génie en shell, mais je me demandais si j’étais vraiment si mauvais :).

      première fois que cela m'arrive, merci du tuyau

  • # chemin absolu et hd

    Posté par  . Évalué à 2. Dernière modification le 10 septembre 2018 à 07:21.

    Bonjour

    Dans la chaîne de caractères entre guillemets
    qui est dans la ligne de commande ci-dessous,
    il y a deux caractères Espace insécable "encadrés" par deux caractères Espace :

    michel@debg53sw:~$ echo -n "    " | hd
    00000000  20 c2 a0 c2 a0 20                                 | .... |
    00000006
    michel@debg53sw:~$ 
    

    on peut voir les caractères Espace (20)
    et les caractères Espace insécable (c2a0)


    bash: dmtxwrite : commande introuvable

    Je ne sais pas quelle distribution Linux tu utilises,
    mais si c'est debian, la commande dmtxwrite est dans le paquetage dmtx-utils
    et après avoir installé ce paquetage, le chemin absolu de la commande dmtxwrite
    est /usr/bin/dmtxread
    Comme le chemin /usr/bin est dans la liste des chemins du PATH des comptes utilisateurs non privilégiés et du compte root
    tu n'auras pas besoin de spécifier le chemin absolu de la commande dmtxwrite pour l'utiliser.

    while read; do echo -n "$REPLY" | dmtxwrite -o "${REPLY}.png"; done < test
    Mais si tu as compilé les codes sources de la commande dmtxwrite pour créer le fichier exécutable,
    et que le chemin absolu de la commande dmtxwrite que tu as compilé n'est pas dans la liste des chemins de la variable PATH
    il te faudra spécifier le chemin absolu de la commande dmtxwrite que tu as compilé pour pouvoir l'utiliser.

    • [^] # Re: chemin absolu et hd

      Posté par  . Évalué à 2.

      bonjour

      effectivement, espaces insécable devant la commande.

      et merci pour la ligne en démo, pour éviter d'utiliser cat. par contre je dois enlever le -n de echo pour que cela fonctionne
      pour info il me mets : dmtxwrite: Unable to encode message (possibly too large for requested size)

    • [^] # Commentaire supprimé

      Posté par  . Évalué à 1. Dernière modification le 09 décembre 2018 à 11:01.

      Ce commentaire a été supprimé par l’équipe de modération.

    • [^] # Commentaire supprimé

      Posté par  . Évalué à 0. Dernière modification le 09 décembre 2018 à 10:58.

      Ce commentaire a été supprimé par l’équipe de modération.

  • # correction

    Posté par  . Évalué à 1. Dernière modification le 10 septembre 2018 à 07:30.


    et après avoir installé ce paquetage, le chemin absolu de la commande dmtxwrite
    est /usr/bin/dmtxwrite

Suivre le flux des commentaires

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