#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
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
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#4 Le 23/01/2013, à 14:47
- pingouinux
Re : [Bash] script de tri de videos par date
Encore désolé !!!
Hors ligne