home castoo
chapitre informatique
Putty outil SSH

Récréation UNIX
Révision de quelques commandes

Décemvre 2020

On peut en faire des choses avec une simple commande sous unix...


Le problème d'exemple.

L'exploitation d'une caméra de surveillance avec un Raspberry et le logiciel "motion" produit un nombre très important de fichier, un par image et un par film en cas de détection de modification de pixel sur l'image captée par la caméra donc plus ça bouge plus il y a d'image ! Donc on se retrouve avec un répertoire qui déborde de fichier. Le but ici est d'identifier rapidement les horaires ou il y a eu le plus de mouvement et ainsi aller à l'essentiel !

Comment chercher dans cette longue liste de fichier.

commande ls

La commande ls permet donc de lister les fichiers d'un répertoire avec l'option -l on obtient un affichage par ligne avec les principales infos avec l'option -c on affiche les dates de changement des statuts des fichiers.

Compter le nombre de fichier du répertoire.

commande wc -l Pour compter le nb de ligne d'un fichier on utilise
wc -l nomdefichier.
Ici nous voulons compter le nombre de ligne du résultat de notre commande ls, nous allons donc utiliser le caractère "pipe" "|" (trait vertical sur le chiffre 6 du clavier).
Ce caractère indique à unix que le résultat de la première commande de la ligne va être exploitée par la commande qui suit le pipe.
Donc ls -lc nomderep liste les fichiers et wc -l va compter les lignes de cette liste.
La commande ls -l | wc -l affiche donc 440 dans mon exemple.

Couper la partie qui nous interresse.

commande cut -d- -f8 La commande "cut" va nous permettre de découper la date et l'heure comprises dans le nom de chaque fichier.
L'option -d permet de spécifier un séparateur dans ce cas j'ai choisi le tiret l'option devient donc -d-
L'option -f permet d'extraire le numéro du champ spécifié donc pour nous le 8eme (chaque champ est donc séparé par un tiret).
ls -lc ./motion/*.jpg | cut -d- -f8 va donc ne nous garder que la date et l'heure comprises dans le nom de chaque fichier.

Ne garder que la date et l'heure.

commande cut -c1-10 La commande "cut" va à nouveau nous permettre de découper la date et l'heure comprises dans le résultat précédent (les minutes et les secondes ne m'intéressent pas).
L'option -c permet de spécifier une zone d'extraction -c1-10 va donc ne garder que du 1er au 10eme caractère.

Nous pouvons maintenant faire un tri numérique.

commande sort -n La commande "sort" va nous permettre de trier efficacement les dates par ordre numérique.
L'option -n spécifie un tri numérique.

Comptons le nombre de fichier pour chaque date_heure.

commande uniq -c La commande "uniq" va éliminer les doublons.
L'option -c va par contre compter le nombre de chaque occurrence.

Trions les date_heure par nombre décroissant.

commande uniq -n La commande "sort" va permettre de trier le résultat afin de mettre en évidence les heures ou il y a eu le plus de mouvement.
L'option -nr signifie trie numérique à rebours.

Sauvegarde du résultat dans un fichier.

commande redirection Pour terminer le résultat définitif est envoyé dans un fichier à l'aide d'une redirection avec le caractère ">".

Afficher le fichier du résultat.

commande cat Ensuite il est facile d'afficher le fichier avec la commande "cat"



sudo ls -lc ./motion/*.jpg | cut -d- -f8 | cut -c1-10 | sort -n | uniq -c | sort -nr > /home/pi/nb_h.txt
	

Ce petit exercice permet de voir la puissance du caractère "pipe et de la "redirection". Je l'ai ici utilisé en ligne de commande mais il est tout à fait possible de l'utiliser également dans un Shell unix.

accueil informatique

Bricolage Robotique Informatique Peinture Voyage
Téléc. portail Le robot "mécano" Astuces informatique Henri Bertrou Auvergne
Bat. Iphone 6S Le robot "solaire" Réseau couche app. Jean-Michel Castille Floride
Robot piscine Servo et IR" Réseau Les couches New York
Xiaomi M365 Le robot "thymio" Réseaux Outils L'Ouest américain
Mac Mini Le robot "Rovio" Unités grandeur inf. L'Ile Maurice
Putty SSH Windows L'Italie / Venise
Bases Raspberry Tunisie
Termius IPhone/IPad Grece
Le vieux ZX 81
...
Navigation La Rochelle CNC / Imp3D Electronique Programmation
Rencontre dauphins Les Minimes Construction CNC Alim. TPL 5110 Doc. programme
Analyse NMEA 0183 Le Vieux port CNC du commerce Carte ESP8266 Indent programme
graph. NMEA 0183 L'Ile de Ré Martyr CNC ESP8266 1 relai Prog. objet
Analyse trames AIS A visiter Réa. imp. 3D ESP8266 Alarme Prog. procédurale
Analyse AIS TCP-IP Cura impression 3D ESP8266 MQTT
Sortie en ketch Plateau CR10 ESP8266 Temp.
Echange GPS C80 Anémomètre.
HP Sun-Odyssey CNC / 3D en vrac MCP9808 Librairie
LCD yanmar Saisie Oled
Testeur nmea esp1 i2c