Je sais que cette commande me retourne (entre autres) une ligne vide par
mail en partance, mais je n'arrive pas à compter ces lignes blanches.
Je sais que cette commande me retourne (entre autres) une ligne vide par
mail en partance, mais je n'arrive pas à compter ces lignes blanches.
Je sais que cette commande me retourne (entre autres) une ligne vide par
mail en partance, mais je n'arrive pas à compter ces lignes blanches.
Bonsoir
Dans un petit script, je veux tester la sortie de la commande mailq pour
tester la présence de mails à envoyés.
Je sais que cette commande me retourne (entre autres) une ligne vide par
mail en partance, mais je n'arrive pas à compter ces lignes blanches.
Je cherche à utiliser grep mais je dois mal m'y prendre (et la page de
man ne m'est pas d'un grand secours).
D'ailleurs, est-ce grap qu'il faut utiliser ?
Bref, comment faire ?
Bonsoir
Dans un petit script, je veux tester la sortie de la commande mailq pour
tester la présence de mails à envoyés.
Je sais que cette commande me retourne (entre autres) une ligne vide par
mail en partance, mais je n'arrive pas à compter ces lignes blanches.
Je cherche à utiliser grep mais je dois mal m'y prendre (et la page de
man ne m'est pas d'un grand secours).
D'ailleurs, est-ce grap qu'il faut utiliser ?
Bref, comment faire ?
Bonsoir
Dans un petit script, je veux tester la sortie de la commande mailq pour
tester la présence de mails à envoyés.
Je sais que cette commande me retourne (entre autres) une ligne vide par
mail en partance, mais je n'arrive pas à compter ces lignes blanches.
Je cherche à utiliser grep mais je dois mal m'y prendre (et la page de
man ne m'est pas d'un grand secours).
D'ailleurs, est-ce grap qu'il faut utiliser ?
Bref, comment faire ?
On Mon, 12 Jan 2004 21:23:50 +0100, Hugolino wrote:Dans un petit script, je veux tester la sortie de la commande mailq pour
tester la présence de mails à envoyés.
Bref, comment faire ?
Pourquoi ne pas regarder ds le rep /var/spool/mqueue directement ?
Il [e2fsck] a bien démarré, mais il m'a rendu la main aussitot en me
disant "houlala, c'est pas beau à voir votre truc, je préfèrerai que
vous teniez vous meme la tronçonneuse" -+- NC in GLP -+-
On Mon, 12 Jan 2004 21:23:50 +0100, Hugolino wrote:
Dans un petit script, je veux tester la sortie de la commande mailq pour
tester la présence de mails à envoyés.
Bref, comment faire ?
Pourquoi ne pas regarder ds le rep /var/spool/mqueue directement ?
Il [e2fsck] a bien démarré, mais il m'a rendu la main aussitot en me
disant "houlala, c'est pas beau à voir votre truc, je préfèrerai que
vous teniez vous meme la tronçonneuse" -+- NC in GLP -+-
On Mon, 12 Jan 2004 21:23:50 +0100, Hugolino wrote:Dans un petit script, je veux tester la sortie de la commande mailq pour
tester la présence de mails à envoyés.
Bref, comment faire ?
Pourquoi ne pas regarder ds le rep /var/spool/mqueue directement ?
Il [e2fsck] a bien démarré, mais il m'a rendu la main aussitot en me
disant "houlala, c'est pas beau à voir votre truc, je préfèrerai que
vous teniez vous meme la tronçonneuse" -+- NC in GLP -+-
Compter les lignes vides :
grep -cv .
ou
grep -cv '[^[:blank:]]'
pour compter les lignes blanches.
les débilos qui ont décrété qu'il fallait tout éteindre pendant le w.e.!!
define(`Y2K_Auto_Purge_Queue',`True')dnl
Compter les lignes vides :
grep -cv .
ou
grep -cv '[^[:blank:]]'
pour compter les lignes blanches.
les débilos qui ont décrété qu'il fallait tout éteindre pendant le w.e.!!
define(`Y2K_Auto_Purge_Queue',`True')dnl
Compter les lignes vides :
grep -cv .
ou
grep -cv '[^[:blank:]]'
pour compter les lignes blanches.
les débilos qui ont décrété qu'il fallait tout éteindre pendant le w.e.!!
define(`Y2K_Auto_Purge_Queue',`True')dnl
Le Mon, 12 Jan 2004 22:46:15 +0100, Stephane Chazelas a écrit:Compter les lignes vides :
grep -cv .
-c : Ne pas afficher les résultats normaux...
-v : Inverser la mise en corespondance, pour sélectionner les lignes ne
correspondant pas au motif...
A froid je dirais que ^[:blank:] est un motif correspondant à la classe
blank trouvée au début de chaîne, sauf si le signe ^ (d'après ce que
j'ai compris de la page man de bash) signifie qu'on inverse la
sélection, puis qu'on réencadre le tout avec des crochets pour créer une
nouvelle classe pour finalement faire évaluer le tout par bash avec ''
(pourquoi pas ``, d'ailleurs ?).o
Mais alors on inverse deux fois la chose, une fois avec bash puis une
deuxième fois avec grep, pour finalement retomber sur nos pattes. Bref
ça m'interpelle...
ou
grep -cv '[^[:blank:]]'
pour compter les lignes blanches.
Pourquoi mailq > grep -sv '[^[:blank:]]' ne jette-t-il avec un "mailq:
fatal: display queue mode requires no recipient" alors que avec un "|",
ça fonctionne ?
Jusqu'à présent je croyais que tout était fichier sous unix, mais je
m'aperçois que la première commande essayée impose de passer par un
fichier réel ("mailq > TestMail" puis "grep -cv '[^[:blank:]]' TestMail"
marche bien).
Bref je croyais que stdin, stdout et stderr étaient des fichiers...
Le Mon, 12 Jan 2004 22:46:15 +0100, Stephane Chazelas a écrit:
Compter les lignes vides :
grep -cv .
-c : Ne pas afficher les résultats normaux...
-v : Inverser la mise en corespondance, pour sélectionner les lignes ne
correspondant pas au motif...
A froid je dirais que ^[:blank:] est un motif correspondant à la classe
blank trouvée au début de chaîne, sauf si le signe ^ (d'après ce que
j'ai compris de la page man de bash) signifie qu'on inverse la
sélection, puis qu'on réencadre le tout avec des crochets pour créer une
nouvelle classe pour finalement faire évaluer le tout par bash avec ''
(pourquoi pas ``, d'ailleurs ?).o
Mais alors on inverse deux fois la chose, une fois avec bash puis une
deuxième fois avec grep, pour finalement retomber sur nos pattes. Bref
ça m'interpelle...
ou
grep -cv '[^[:blank:]]'
pour compter les lignes blanches.
Pourquoi mailq > grep -sv '[^[:blank:]]' ne jette-t-il avec un "mailq:
fatal: display queue mode requires no recipient" alors que avec un "|",
ça fonctionne ?
Jusqu'à présent je croyais que tout était fichier sous unix, mais je
m'aperçois que la première commande essayée impose de passer par un
fichier réel ("mailq > TestMail" puis "grep -cv '[^[:blank:]]' TestMail"
marche bien).
Bref je croyais que stdin, stdout et stderr étaient des fichiers...
Le Mon, 12 Jan 2004 22:46:15 +0100, Stephane Chazelas a écrit:Compter les lignes vides :
grep -cv .
-c : Ne pas afficher les résultats normaux...
-v : Inverser la mise en corespondance, pour sélectionner les lignes ne
correspondant pas au motif...
A froid je dirais que ^[:blank:] est un motif correspondant à la classe
blank trouvée au début de chaîne, sauf si le signe ^ (d'après ce que
j'ai compris de la page man de bash) signifie qu'on inverse la
sélection, puis qu'on réencadre le tout avec des crochets pour créer une
nouvelle classe pour finalement faire évaluer le tout par bash avec ''
(pourquoi pas ``, d'ailleurs ?).o
Mais alors on inverse deux fois la chose, une fois avec bash puis une
deuxième fois avec grep, pour finalement retomber sur nos pattes. Bref
ça m'interpelle...
ou
grep -cv '[^[:blank:]]'
pour compter les lignes blanches.
Pourquoi mailq > grep -sv '[^[:blank:]]' ne jette-t-il avec un "mailq:
fatal: display queue mode requires no recipient" alors que avec un "|",
ça fonctionne ?
Jusqu'à présent je croyais que tout était fichier sous unix, mais je
m'aperçois que la première commande essayée impose de passer par un
fichier réel ("mailq > TestMail" puis "grep -cv '[^[:blank:]]' TestMail"
marche bien).
Bref je croyais que stdin, stdout et stderr étaient des fichiers...
2004-01-14, 00:32(+01), Hugolino:Le Mon, 12 Jan 2004 22:46:15 +0100, Stephane Chazelas a écrit:grep -cv .
-c : Ne pas afficher les résultats normaux...
-c
Write only a count of selected lines to standard
output.
[:blank:], c'est une "POSIX class", ... <cut>
Ya pas de bash là-dedans... <cut>
Pourquoi mailq > grep -sv '[^[:blank:]]' me jette-t-il avec un "mailq:
fatal: display queue mode requires no recipient" alors que avec un "|",
ça fonctionne ?
Parce que ça lance la commande "mailq -sv '[^[:blank:]]'" avec
sa sortie standard redirigée vers le fichier "grep" créé dans
le répertoire courant (la place du "> fichier" est indifférente
dans une ligne de commande).
Jusqu'à présent je croyais que tout était fichier sous unix, mais je
m'aperçois que la première commande essayée impose de passer par un
fichier réel ("mailq > TestMail" puis "grep -cv '[^[:blank:]]' TestMail"
marche bien).
Bref je croyais que stdin, stdout et stderr étaient des fichiers...
Oui, et ?
Dans:
cmd1 | cmd2
stdout de cmd1 est un "unnamed pipe" qui peut si tu veux être
considéré comme un fichier. Mais il faut bien voir qu'on a là
deux commandes lancées en parallèle...
...avec un pipe entre elles
deux, ce qui est très différent d'un "cmd > fichier" qui
n'implique qu'une commande. La lancement d'une commande n'est
pas un fichier, si c'est ça que tu veux dire. Le lancement d'une
commande est le lancement d'un appel système execve (quand il
s'agit d'une commande externe). execve prend en paramètre un
fichier, certes. Mais le système ne fait que le charger en
mémoire et exécuter le code qui s'y trouve (avec
l'environnement (fichiers ouverts, "environnement" (par
convention)) qu'avait le processus avant (qu'il a hérité de son
père s'il y a eu un fork).
On va peut-être savoir si un FreeBSDiste peut se reproduire avec un
linuxien.
Ah ! C'est ça HURD ?
2004-01-14, 00:32(+01), Hugolino:
Le Mon, 12 Jan 2004 22:46:15 +0100, Stephane Chazelas a écrit:
grep -cv .
-c : Ne pas afficher les résultats normaux...
-c
Write only a count of selected lines to standard
output.
[:blank:], c'est une "POSIX class", ... <cut>
Ya pas de bash là-dedans... <cut>
Pourquoi mailq > grep -sv '[^[:blank:]]' me jette-t-il avec un "mailq:
fatal: display queue mode requires no recipient" alors que avec un "|",
ça fonctionne ?
Parce que ça lance la commande "mailq -sv '[^[:blank:]]'" avec
sa sortie standard redirigée vers le fichier "grep" créé dans
le répertoire courant (la place du "> fichier" est indifférente
dans une ligne de commande).
Jusqu'à présent je croyais que tout était fichier sous unix, mais je
m'aperçois que la première commande essayée impose de passer par un
fichier réel ("mailq > TestMail" puis "grep -cv '[^[:blank:]]' TestMail"
marche bien).
Bref je croyais que stdin, stdout et stderr étaient des fichiers...
Oui, et ?
Dans:
cmd1 | cmd2
stdout de cmd1 est un "unnamed pipe" qui peut si tu veux être
considéré comme un fichier. Mais il faut bien voir qu'on a là
deux commandes lancées en parallèle...
...avec un pipe entre elles
deux, ce qui est très différent d'un "cmd > fichier" qui
n'implique qu'une commande. La lancement d'une commande n'est
pas un fichier, si c'est ça que tu veux dire. Le lancement d'une
commande est le lancement d'un appel système execve (quand il
s'agit d'une commande externe). execve prend en paramètre un
fichier, certes. Mais le système ne fait que le charger en
mémoire et exécuter le code qui s'y trouve (avec
l'environnement (fichiers ouverts, "environnement" (par
convention)) qu'avait le processus avant (qu'il a hérité de son
père s'il y a eu un fork).
On va peut-être savoir si un FreeBSDiste peut se reproduire avec un
linuxien.
Ah ! C'est ça HURD ?
2004-01-14, 00:32(+01), Hugolino:Le Mon, 12 Jan 2004 22:46:15 +0100, Stephane Chazelas a écrit:grep -cv .
-c : Ne pas afficher les résultats normaux...
-c
Write only a count of selected lines to standard
output.
[:blank:], c'est une "POSIX class", ... <cut>
Ya pas de bash là-dedans... <cut>
Pourquoi mailq > grep -sv '[^[:blank:]]' me jette-t-il avec un "mailq:
fatal: display queue mode requires no recipient" alors que avec un "|",
ça fonctionne ?
Parce que ça lance la commande "mailq -sv '[^[:blank:]]'" avec
sa sortie standard redirigée vers le fichier "grep" créé dans
le répertoire courant (la place du "> fichier" est indifférente
dans une ligne de commande).
Jusqu'à présent je croyais que tout était fichier sous unix, mais je
m'aperçois que la première commande essayée impose de passer par un
fichier réel ("mailq > TestMail" puis "grep -cv '[^[:blank:]]' TestMail"
marche bien).
Bref je croyais que stdin, stdout et stderr étaient des fichiers...
Oui, et ?
Dans:
cmd1 | cmd2
stdout de cmd1 est un "unnamed pipe" qui peut si tu veux être
considéré comme un fichier. Mais il faut bien voir qu'on a là
deux commandes lancées en parallèle...
...avec un pipe entre elles
deux, ce qui est très différent d'un "cmd > fichier" qui
n'implique qu'une commande. La lancement d'une commande n'est
pas un fichier, si c'est ça que tu veux dire. Le lancement d'une
commande est le lancement d'un appel système execve (quand il
s'agit d'une commande externe). execve prend en paramètre un
fichier, certes. Mais le système ne fait que le charger en
mémoire et exécuter le code qui s'y trouve (avec
l'environnement (fichiers ouverts, "environnement" (par
convention)) qu'avait le processus avant (qu'il a hérité de son
père s'il y a eu un fork).
On va peut-être savoir si un FreeBSDiste peut se reproduire avec un
linuxien.
Ah ! C'est ça HURD ?
Dans:
cmd1 | cmd2
stdout de cmd1 est un "unnamed pipe" qui peut si tu veux être
considéré comme un fichier. Mais il faut bien voir qu'on a là
deux commandes lancées en parallèle...
"parallèle", cela signifie-t-il bien que les deux commandes s'exécutent
en même temps ? Ou plus exactement que Bash évalue cette ligne de
commande et décide de l'ordre d'exécution.
[...]
Dans:
cmd1 | cmd2
stdout de cmd1 est un "unnamed pipe" qui peut si tu veux être
considéré comme un fichier. Mais il faut bien voir qu'on a là
deux commandes lancées en parallèle...
"parallèle", cela signifie-t-il bien que les deux commandes s'exécutent
en même temps ? Ou plus exactement que Bash évalue cette ligne de
commande et décide de l'ordre d'exécution.
[...]
Dans:
cmd1 | cmd2
stdout de cmd1 est un "unnamed pipe" qui peut si tu veux être
considéré comme un fichier. Mais il faut bien voir qu'on a là
deux commandes lancées en parallèle...
"parallèle", cela signifie-t-il bien que les deux commandes s'exécutent
en même temps ? Ou plus exactement que Bash évalue cette ligne de
commande et décide de l'ordre d'exécution.
[...]