Salut,
Ca fait longtemps que je n'était pas passé par ici (en gros depuis le changement présence-pc => tom's hardware :ange: ).
J'aurais besoin d'un petit coup de main pour un script sur Linux (Debian).
Le contexte : le PC avec Debian doit me servir à récupérer des infos envoyées depuis un appareil connecté via le port série. Pas de souci pour la connexion, stty fait très bien les choses
La où ça se complique, c'est au niveau des infos envoyées par l'appareil. En voici un extrait de quelques secondes :
[fixed]?1: NO COMMAND
?1: NO COMMAND
?1: NO COMMAND
?1: NO COMMAND
?1: NO COMMAND
TIME : 10:17
Condenser: -51.8 C
Pressure: 0.14 hPa
Product: *.* C
?1: NO COMMAND
?1: NO COMMAND
?1: NO COMMAND
?1: NO COMMAND
?1: NO COMMAND[/fixed]
L'enregistrement doit durer 24h environ pour chaque utilisation de l'appareil (temps d'un cycle complet). A ce rythme-là j'obtiens des fichiers de plus de 300 Mo :heink: Et ensuite c'est chaud pour faire de trie dedans, même de façon automatique !
J'ai donc penser supprimer "à la volée" tout ce qui ne me sert à rien, c'est à dire "?1: NO COMMAND" et les lignes vides. Dans ma grande ignorance de la beauté des scripts bash, j'ai essayé de faire simple :
[cpp](cat /dev/ttyS0 | grep -Eiv "^(\?1: NO COMMAND|)$") >> ./`date '+%Y%m%d-%H0000'`_lyoph.log[/cpp]
Et là c'est le drame, rien n'est inscrit dans mon fichier Mais si au lieu de rediriger vers un fichier je laisse l'affichage sur la sortie standard, ça marche ! Je ne vois pas comment m'en sortir...
Dernières petites remarques : sans grep, la redirection marche. J'ai essayé avec sed à la place de grep, mais c'est pas mieux. J'ai également essayé avec ou sans les parenthèses entourant les actions avant la redirection. Enfin, j'ai également essayé en redirigeant /dev/ttyS0 sur l'entrée standard plutôt que de le fournir en paramètre à cat. Mais ça ne change rien...
Avez-vous une idée de script qui me permette d'enregistrer dans un fichier ce qui provient du port série en enlevant au passage ce qui ne me sert pas ?
En vous remerciant par avance de votre aide
Bonne journée
Ca fait longtemps que je n'était pas passé par ici (en gros depuis le changement présence-pc => tom's hardware :ange: ).
J'aurais besoin d'un petit coup de main pour un script sur Linux (Debian).
Le contexte : le PC avec Debian doit me servir à récupérer des infos envoyées depuis un appareil connecté via le port série. Pas de souci pour la connexion, stty fait très bien les choses
La où ça se complique, c'est au niveau des infos envoyées par l'appareil. En voici un extrait de quelques secondes :
[fixed]?1: NO COMMAND
?1: NO COMMAND
?1: NO COMMAND
?1: NO COMMAND
?1: NO COMMAND
TIME : 10:17
Condenser: -51.8 C
Pressure: 0.14 hPa
Product: *.* C
?1: NO COMMAND
?1: NO COMMAND
?1: NO COMMAND
?1: NO COMMAND
?1: NO COMMAND[/fixed]
L'enregistrement doit durer 24h environ pour chaque utilisation de l'appareil (temps d'un cycle complet). A ce rythme-là j'obtiens des fichiers de plus de 300 Mo :heink: Et ensuite c'est chaud pour faire de trie dedans, même de façon automatique !
J'ai donc penser supprimer "à la volée" tout ce qui ne me sert à rien, c'est à dire "?1: NO COMMAND" et les lignes vides. Dans ma grande ignorance de la beauté des scripts bash, j'ai essayé de faire simple :
[cpp](cat /dev/ttyS0 | grep -Eiv "^(\?1: NO COMMAND|)$") >> ./`date '+%Y%m%d-%H0000'`_lyoph.log[/cpp]
Et là c'est le drame, rien n'est inscrit dans mon fichier Mais si au lieu de rediriger vers un fichier je laisse l'affichage sur la sortie standard, ça marche ! Je ne vois pas comment m'en sortir...
Dernières petites remarques : sans grep, la redirection marche. J'ai essayé avec sed à la place de grep, mais c'est pas mieux. J'ai également essayé avec ou sans les parenthèses entourant les actions avant la redirection. Enfin, j'ai également essayé en redirigeant /dev/ttyS0 sur l'entrée standard plutôt que de le fournir en paramètre à cat. Mais ça ne change rien...
Avez-vous une idée de script qui me permette d'enregistrer dans un fichier ce qui provient du port série en enlevant au passage ce qui ne me sert pas ?
En vous remerciant par avance de votre aide
Bonne journée