Re: lpr - precisions

Top Page

Reply to this message
Author: Frederic Mantegazza
Date:  
To: guilde
Old-Topics: Re: lpr
Subject: Re: lpr - precisions
---Reply to mail from <Francois.CAU@???>

> Je souhaite faire:
> cat file1 file2 > lpr -Pprinter
> mais cela ne fonctionne pas a cause de l'option -Pprinter, sans elle
> c'est OK, je pense que je dois rajouter des " ou des ' ou des ` mais
> correctement, j'ai essayer sans succes.
> Avez-vous la solution ?


Salut,

Tu as sans doute eu la solution, mais il me semble que personne (en tout
cas sur Guilde) ne t'a dit pourquoi ca ne marchait pas, ce qui me semble
interessant a comprendre.

La commande que tu a lancee, avec le >, a redirige les donnees normalement
destinees a la sortie standard (stdout, en C) vers le fichier que tu as
nomme lpr. Tu as du trouver un fichier avec ce nom sur ton disque, fichier
contenant les deux fichiers file1 et 2. Le -Pprinter a ete interprete comme
une option de cat (qui n'en n'est pas une, d'ou erreur).

Pour faire ce que tu souhaitais, il fallait utiliser le pipe (comme on te
l'a signale). C'est le signe |. Ca permet de rediriger tout ce qui sort de
la premiere commande vers l'entree de la seconde commande. La plupart des
commandes lisent l'entree depuis fichier. Ex lpr file [-Pprinter]. Mais si
file est absent, par defaut elle lit l'entree standard. Si la commande
est lancee seule, il te faut rentrer les donnees au clavier. Essaye, tu
veras que la commande attend. Par contre, je ne sais pas quel est la
sequence pour sortir. Peut-etre ctrl-Z, mais c'est a confirmer (si
quelqu'un connait la sequence, merci de nous la donner).

Avec le pipe, l'entree standard (le clavier) est remplace par la sortie de
la commande precedente. Et ca marche tres bien. A noter que c'est une
operation vraiment puissante, car rien ne t'interdit d'enchainer plusieurs
commandes avec des pipes. Avec un peu de maitrise, tu peux realiser des
choses vraiment complexes en une seule ligne. C'est vrai que c'est un peu
hermetique quand on voit un truc du genre :

    cat file | grep pipo | awk -po -a | lpr -Ptrucmuche


(cet exemple est bidon, les option n'existent sans doute pas). Ce genre de
lignes, tu peux en trouver dans des scripts d'installation.

Voila. Je pense que le pipe est a connaitre absolument. J'espere que mes
explications etaient assez claires. Si tu as des questions, n'hesite pas a
les poser sur Guilde.

A plus,

-- 
    Frederic


"Nous vivons une epoque moderne, le progres fait rage..." (Philippe Meyer)