Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash vient d'être divulguée, il est recommandé de mettre à jour son système (plus de détails)

*** 28 sept. nouvelle mise à jour (4.2-2ubuntu2.5 ou 4.3-7ubuntu1.4) *** pour mettre à jour, lancez dans un terminal :
sudo apt-get update ; sudo apt-get upgrade bash

#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 : Amd X4 3Ghz, 12Go DDR3, Ati HD4850
Macbook Blanc C2Duo 4Go DDR3 et 250 SATA2
1 Server : Amd 6000+ X2, 4Go DDR2, 1TO SATA/IDE

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


Sébastien Maccagnoni-Munch - administrateur Linux depuis le XXème siècle
Consultant informatique indépendant - http://www.smm-informatique.fr
Geek et tout plein d'autres choses - http://www.tiramiseb.fr

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

Haut de page ↑