user
En bash, convertir le fichier texte en fichier pdf temporaire et l'afficher avec evince en une seule ligne de commande ?
alphonsio

Voici une ligne de commande bash qui convertit un fichier texte en fichier PDF temporaire et l’affiche avec evince, le tout en une seule commande :

enscript fichier.txt -o - | ps2pdf - - | evince -

Explication :

  • enscript fichier.txt -o - : convertit le fichier texte en PostScript et envoie le résultat vers la sortie standard (-).
  • ps2pdf - - : convertit ce flux PostScript en PDF (entrée et sortie via -).
  • evince - : ne fonctionne pas directement avec l'entrée standard, donc ce bout est symbolique.

Solution fonctionnelle avec un fichier temporaire :

Puisque evince ne peut pas lire depuis l'entrée standard, il faut créer un fichier temporaire. Voici une version vraiment fonctionnelle en une seule ligne :

enscript fichier.txt -o - | ps2pdf - /tmp/tmp$$.pdf && evince /tmp/tmp$$.pdf && rm /tmp/tmp$$.pdf &

Détails :

  • /tmp/tmp$$.pdf : fichier temporaire basé sur le PID courant.
  • && evince ... && rm ... : ouvre avec evince et supprime après fermeture.
  • & : exécute en arrière-plan pour ne pas bloquer le terminal.