Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 23/01/2013, à 13:24

hackman61

[Bash] script de tri de videos par date

Bonjour à tous, voila mon problème :

J'ai une camera qui filme H24, et qui place ses vidéos sur un NAS, dans /volumes/zpool2/cam-01

Les fichiers ont ce format :

121122162146.mp4 avec comme découpage :

12 pour l'année
11 pour le mois
22 pour le jour
16 pour l'heure
21 pour les minutes
et 46 pour les secondes.

Ce que je veux faire :

- créer un dossier par an
- créer un dossier par mois
- créer un dossier par jour
- ranger tout ça au bon endroit

pour le moment j'ai fait ça :

#!/bin/bash
##Init path
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/usr/bin/X11
basedir=/volumes/zpool2/cam-01
cd $basedir

##Init variables
annee=`date +%Y`
mois=$annee'\'`date +%m`
jour=$mois'\'`date +%d`
AMJ=`date +%y%m%d`

echo $annee
echo $mois
echo $jour
echo $AMJ

##Création des dossiers

##Dossier annee en cours
if test -d `date +%Y`; then
echo "le dossier `date +%Y` existe"
else 
echo "le dossier `date +%Y` n'existe pas, creation"
mkdir `date +%Y`
fi

##Dossier mois en cours
cd `date +%Y`
if test -d `date +%m`; then
echo "le dossier `date +%m` existe"
else 
echo "le dossier `date +%m` n'existe pas, creation"
mkdir -p `date +%m`
fi

##Dossier jour en cours
cd `date +%m`
if test -d `date +%d`; then
echo "le dossier `date +%d` existe"
else 
echo "le dossier `date +%d` n'existe pas, creation"
mkdir -p `date +%d`
fi

##Rangement des videos

cd $basedir

ls | cut -c-6 | grep -i $AMJ > scripts/test.txt

Qui me donne :

root@store-01:/volumes/zpool2/cam-01/scripts# ./camera.sh
2013
2013\01
2013\01\23
130123
le dossier 2013 existe
le dossier 01 existe
le dossier 23 existe

Avec un fichier test.txt rempli comme ça :

root@store-01:/volumes/zpool2/cam-01/scripts# cat test.txt  | more
130123
130123
130123
130123
130123
130123
130123
130123
130123
130123
130123
130123
130123
130123
130123
130123
130123
130123
130123
130123
130123
130123
130123
130123
130123
130123
130123
130123
130123
130123
130123
130123
130123
130123
130123
130123
130123
130123
130123
130123
130123
130123
130123
--More--

Pas très utile comme resultat ...

Donc je me tourne vers vous pour savoir si vous avez idées de comment découper la sortie de mon ls pour pouvoir filtrer, mais remplir mon txt avec les vrais noms de fichiers smile

Merci d'avances,

Nicolas


Config : Acer swift 3 : Archlinux Ryzen 5 , 16G DDR4, NVME 250G

Hors ligne

#2 Le 23/01/2013, à 13:54

pingouinux

Re : [Bash] script de tri de videos par date

Bonjour,
Après t'être placé dans $basedir :

for i in *.mp4
do
   annee="${i:0:2}"
   mois="${i:2:2}"
   jour="${i:4:2}"
   rep="$annee/$mois/$jour"
   mkdir -p "$rep"
   echo mv "$i" "$rep"
done

Enlever le echo si c'est bon.

Hors ligne

#3 Le 23/01/2013, à 14:37

tiramiseb

Re : [Bash] script de tri de videos par date

pingouinux : t'es chiant, je voulais faire (quasiment) la même réponse... Tu réponds trop vite tongue

Hors ligne

#4 Le 23/01/2013, à 14:47

pingouinux

Re : [Bash] script de tri de videos par date

Encore désolé !!! lol

Hors ligne