Bonjour,
Je bricole sous GNU/Linux-Mandriva 2006. Je reçois par le port série de
mon pc des résultats de mesures successives en provenance d'un «
scopemètre ». Ces résultats se présentent sous la forme de lignes comme
suit :
$ cat /dev/ttyS0
k0s0Gs0CNOW rms AC+DC 1.125mV, 0Hz, OL
k0s0Gs0CNOW rms AC+DC 1.132mV, 0Hz, OL
k0s0Gs0CNOW rms AC+DC 1.139mV, 0Hz, OL
...
Je souhaiterais que chaque enregistrement comporte, en remplacement de
la chaîne « k0s0Gs0CNOW » la date et l'heure de réception des données.
Je tatonne avec sed mais vainement. Par exemple, j'ai essayé :
$ cat /dev/ttyS0 | sed "s/k0s0Gs0CNOW/`date`/g" ou
$ sed -e 's/k0s0Gs0CNOW/`date`/g' < /dev/ttyS0
mais la date n'apparaît pas dans les mesures affichées.
Un petit coup de pouce, svp ?
Je souhaiterais que chaque enregistrement comporte, en remplacement de la chaîne « k0s0Gs0CNOW » la date et l'heure de réception des données.
while read A B; do printf '%s %sn' "`date`" "$B" done < /dev/ttyS0
Stephane Chazelas
2006-02-04, 15:40(+01), geo cherchetout:
Bonjour, Je bricole sous GNU/Linux-Mandriva 2006. Je reçois par le port série de mon pc des résultats de mesures successives en provenance d'un « scopemètre ». Ces résultats se présentent sous la forme de lignes comme suit :
$ cat /dev/ttyS0
k0s0Gs0CNOW rms AC+DC 1.125mV, 0Hz, OL
k0s0Gs0CNOW rms AC+DC 1.132mV, 0Hz, OL
k0s0Gs0CNOW rms AC+DC 1.139mV, 0Hz, OL
...
Je souhaiterais que chaque enregistrement comporte, en remplacement de la chaîne « k0s0Gs0CNOW » la date et l'heure de réception des données. Je tatonne avec sed mais vainement. Par exemple, j'ai essayé : $ cat /dev/ttyS0 | sed "s/k0s0Gs0CNOW/`date`/g" ou $ sed -e 's/k0s0Gs0CNOW/`date`/g' < /dev/ttyS0 mais la date n'apparaît pas dans les mesures affichées. Un petit coup de pouce, svp ?
Bonjour,
Je bricole sous GNU/Linux-Mandriva 2006. Je reçois par le port série de
mon pc des résultats de mesures successives en provenance d'un «
scopemètre ». Ces résultats se présentent sous la forme de lignes comme
suit :
$ cat /dev/ttyS0
k0s0Gs0CNOW rms AC+DC 1.125mV, 0Hz, OL
k0s0Gs0CNOW rms AC+DC 1.132mV, 0Hz, OL
k0s0Gs0CNOW rms AC+DC 1.139mV, 0Hz, OL
...
Je souhaiterais que chaque enregistrement comporte, en remplacement de
la chaîne « k0s0Gs0CNOW » la date et l'heure de réception des données.
Je tatonne avec sed mais vainement. Par exemple, j'ai essayé :
$ cat /dev/ttyS0 | sed "s/k0s0Gs0CNOW/`date`/g" ou
$ sed -e 's/k0s0Gs0CNOW/`date`/g' < /dev/ttyS0
mais la date n'apparaît pas dans les mesures affichées.
Un petit coup de pouce, svp ?
Bonjour, Je bricole sous GNU/Linux-Mandriva 2006. Je reçois par le port série de mon pc des résultats de mesures successives en provenance d'un « scopemètre ». Ces résultats se présentent sous la forme de lignes comme suit :
$ cat /dev/ttyS0
k0s0Gs0CNOW rms AC+DC 1.125mV, 0Hz, OL
k0s0Gs0CNOW rms AC+DC 1.132mV, 0Hz, OL
k0s0Gs0CNOW rms AC+DC 1.139mV, 0Hz, OL
...
Je souhaiterais que chaque enregistrement comporte, en remplacement de la chaîne « k0s0Gs0CNOW » la date et l'heure de réception des données. Je tatonne avec sed mais vainement. Par exemple, j'ai essayé : $ cat /dev/ttyS0 | sed "s/k0s0Gs0CNOW/`date`/g" ou $ sed -e 's/k0s0Gs0CNOW/`date`/g' < /dev/ttyS0 mais la date n'apparaît pas dans les mesures affichées. Un petit coup de pouce, svp ?
Le 04.02.2006 15:49, *Luc Habert* a écrit fort à propos :
while read A B; do printf '%s %sn' "`date`" "$B" done < /dev/ttyS0
$ while read A B; do printf '%s %sn' "`date`" "$B" done < /dev/ttyS0
sam fév 4 16:03:46 CET 2006 rms AC+DC 1.000mV, 0Hz, OL sam fév 4 16:03:46 CET 2006 sam fév 4 16:03:52 CET 2006 rms AC+DC 1.000mV, 0Hz, OL sam fév 4 16:03:52 CET 2006 sam fév 4 16:04:08 CET 2006 rms AC+DC 1.000mV, 0Hz, OL sam fév 4 16:04:08 CET 2006
Merci, c'est presque parfait, le seul défaut étant la répétition des lignes.
Le 04.02.2006 15:49, *Luc Habert* a écrit fort à propos :
while read A B; do
printf '%s %sn' "`date`" "$B"
done < /dev/ttyS0
$ while read A B; do
printf '%s %sn' "`date`" "$B"
done < /dev/ttyS0
sam fév 4 16:03:46 CET 2006 rms AC+DC 1.000mV, 0Hz, OL
sam fév 4 16:03:46 CET 2006
sam fév 4 16:03:52 CET 2006 rms AC+DC 1.000mV, 0Hz, OL
sam fév 4 16:03:52 CET 2006
sam fév 4 16:04:08 CET 2006 rms AC+DC 1.000mV, 0Hz, OL
sam fév 4 16:04:08 CET 2006
Merci, c'est presque parfait, le seul défaut étant la répétition des lignes.
Le 04.02.2006 15:49, *Luc Habert* a écrit fort à propos :
while read A B; do printf '%s %sn' "`date`" "$B" done < /dev/ttyS0
$ while read A B; do printf '%s %sn' "`date`" "$B" done < /dev/ttyS0
sam fév 4 16:03:46 CET 2006 rms AC+DC 1.000mV, 0Hz, OL sam fév 4 16:03:46 CET 2006 sam fév 4 16:03:52 CET 2006 rms AC+DC 1.000mV, 0Hz, OL sam fév 4 16:03:52 CET 2006 sam fév 4 16:04:08 CET 2006 rms AC+DC 1.000mV, 0Hz, OL sam fév 4 16:04:08 CET 2006
Merci, c'est presque parfait, le seul défaut étant la répétition des lignes.
lhabert
Ah, oui, tu as des lignes vides. Bon, bein :
while read A B; do test -n "$B" && printf '%s %sn' "`date`" "$B" done < /dev/ttyS0
, alors.
Ah, oui, tu as des lignes vides. Bon, bein :
while read A B; do
test -n "$B" && printf '%s %sn' "`date`" "$B"
done < /dev/ttyS0
while read A B; do test -n "$B" && printf '%s %sn' "`date`" "$B" done < /dev/ttyS0
, alors.
geo cherchetout
Le 04.02.2006 16:11, *Luc Habert* a écrit fort à propos :
Ah, oui, tu as des lignes vides.
Ce n'est pas tout à fait ça, j'ai seulement une deuxième ligne en trop pour chaque mesure, ne contenant que la date. (Sans gravité, je trouverai bien le moyen de la supprimer ultérieurement.)
Bon, bein :
while read A B; do test -n "$B" && printf '%s %sn' "`date`" "$B" done < /dev/ttyS0
, alors.
Ça ne marche plus.
$ while read A B; do test -n "$B" && printf '%s %sn' "`date`" "$B" done < /dev/ttyS0
les données ne s'affichent plus.
Le 04.02.2006 16:11, *Luc Habert* a écrit fort à propos :
Ah, oui, tu as des lignes vides.
Ce n'est pas tout à fait ça, j'ai seulement une deuxième ligne en trop
pour chaque mesure, ne contenant que la date. (Sans gravité, je
trouverai bien le moyen de la supprimer ultérieurement.)
Bon, bein :
while read A B; do
test -n "$B" && printf '%s %sn' "`date`" "$B"
done < /dev/ttyS0
, alors.
Ça ne marche plus.
$ while read A B; do test -n "$B" && printf '%s %sn' "`date`" "$B" done
< /dev/ttyS0
Le 04.02.2006 16:11, *Luc Habert* a écrit fort à propos :
Ah, oui, tu as des lignes vides.
Ce n'est pas tout à fait ça, j'ai seulement une deuxième ligne en trop pour chaque mesure, ne contenant que la date. (Sans gravité, je trouverai bien le moyen de la supprimer ultérieurement.)
Bon, bein :
while read A B; do test -n "$B" && printf '%s %sn' "`date`" "$B" done < /dev/ttyS0
, alors.
Ça ne marche plus.
$ while read A B; do test -n "$B" && printf '%s %sn' "`date`" "$B" done < /dev/ttyS0
les données ne s'affichent plus.
geo cherchetout
Le 04.02.2006 16:34, *geo cherchetout* a écrit fort à propos :
Ça ne marche plus.
$ while read A B; do test -n "$B" && printf '%s %sn' "`date`" "$B" done < /dev/ttyS0
les données ne s'affichent plus.
Pardon, j'ai une panne du côté de mon interface optique bricolée. Les essais sont suspendus.
Le 04.02.2006 16:34, *geo cherchetout* a écrit fort à propos :
Ça ne marche plus.
$ while read A B; do test -n "$B" && printf '%s %sn' "`date`" "$B" done
< /dev/ttyS0
les données ne s'affichent plus.
Pardon, j'ai une panne du côté de mon interface optique bricolée. Les
essais sont suspendus.
Le 04.02.2006 16:34, *geo cherchetout* a écrit fort à propos :
Ça ne marche plus.
$ while read A B; do test -n "$B" && printf '%s %sn' "`date`" "$B" done < /dev/ttyS0
les données ne s'affichent plus.
Pardon, j'ai une panne du côté de mon interface optique bricolée. Les essais sont suspendus.
lhabert
geo cherchetout :
Ah, oui, tu as des lignes vides.
Ce n'est pas tout à fait ça, j'ai seulement une deuxième ligne en trop pour chaque mesure
Je voulais dire des lignes vides dans l'entrée.
Ça ne marche plus.
$ while read A B; do test -n "$B" && printf '%s %sn' "`date`" "$B" done < /dev/ttyS0
les données ne s'affichent plus.
Si c'est exactement ce que tu as tapé, c'est normal : il faut un « ; » avant le « done » si tu mets tout sur une même ligne. Chez moi, ce que je t'ai donné marche (enfin, sans le < /dev/ttyS0, en envoyant à la place les lignes d'exemple que tu as données).
geo cherchetout :
Ah, oui, tu as des lignes vides.
Ce n'est pas tout à fait ça, j'ai seulement une deuxième ligne en trop
pour chaque mesure
Je voulais dire des lignes vides dans l'entrée.
Ça ne marche plus.
$ while read A B; do test -n "$B" && printf '%s %sn' "`date`" "$B" done
< /dev/ttyS0
les données ne s'affichent plus.
Si c'est exactement ce que tu as tapé, c'est normal : il faut un « ; » avant
le « done » si tu mets tout sur une même ligne. Chez moi, ce que je t'ai
donné marche (enfin, sans le < /dev/ttyS0, en envoyant à la place les lignes
d'exemple que tu as données).
Ce n'est pas tout à fait ça, j'ai seulement une deuxième ligne en trop pour chaque mesure
Je voulais dire des lignes vides dans l'entrée.
Ça ne marche plus.
$ while read A B; do test -n "$B" && printf '%s %sn' "`date`" "$B" done < /dev/ttyS0
les données ne s'affichent plus.
Si c'est exactement ce que tu as tapé, c'est normal : il faut un « ; » avant le « done » si tu mets tout sur une même ligne. Chez moi, ce que je t'ai donné marche (enfin, sans le < /dev/ttyS0, en envoyant à la place les lignes d'exemple que tu as données).
geo cherchetout
Le 04.02.2006 16:42, *Luc Habert* a écrit fort à propos :
Si c'est exactement ce que tu as tapé, c'est normal : il faut un « ; » avant le « done » si tu mets tout sur une même ligne. Chez moi, ce que je t'ai donné marche (enfin, sans le < /dev/ttyS0, en envoyant à la place les lignes d'exemple que tu as données).
Suis-je bête! Avec le point-virgule c'est parfait. :-) Merci mille fois. (Mon interface est de nouveau opérationnelle.)
Le 04.02.2006 16:42, *Luc Habert* a écrit fort à propos :
Si c'est exactement ce que tu as tapé, c'est normal : il faut un « ; » avant
le « done » si tu mets tout sur une même ligne. Chez moi, ce que je t'ai
donné marche (enfin, sans le < /dev/ttyS0, en envoyant à la place les lignes
d'exemple que tu as données).
Suis-je bête! Avec le point-virgule c'est parfait. :-)
Merci mille fois.
(Mon interface est de nouveau opérationnelle.)
Le 04.02.2006 16:42, *Luc Habert* a écrit fort à propos :
Si c'est exactement ce que tu as tapé, c'est normal : il faut un « ; » avant le « done » si tu mets tout sur une même ligne. Chez moi, ce que je t'ai donné marche (enfin, sans le < /dev/ttyS0, en envoyant à la place les lignes d'exemple que tu as données).
Suis-je bête! Avec le point-virgule c'est parfait. :-) Merci mille fois. (Mon interface est de nouveau opérationnelle.)
geo cherchetout
Le 04.02.2006 16:08, *Stephane Chazelas* a écrit fort à propos :