|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2011 Messages : 15 ![]() |
Bonjour,
j'ai actuellement des dossiers du type JJ-MM-AAAA (aujourd'hui -> 09-06-2011). `echo dossier_en_question | cut -c1-2` me permet de récupérer 09 ici, mais je n'arrive pas à ensuite lui retrancher 7 (la variable est considéré comme un string et non pas un entier ?). Comment pourrais-je faire ? Merci d'avance. |
|
|
10
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 070 ![]() |
Bonjour,
quel interpréteur de commande ? |
|
|
10
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2011 Messages : 15 ![]() |
Merci pour la réponse
L'interpréteur de commandes est Bash. Mais au temps pour moi, j'ai trouvé comment faire : expr `date +"%d"` - 7 (Ca marche vu que je l'utilise dans le script où les dossiers sont nommés, dossiers qui sont nommés avec la commande date) Mais maintenant j'aimerais savoir comment faire, par exemple, si le jour actuel est disons le 6 juillet. Je n'aimerais pas me retrouver avec -1 mais plutôt 30 (30 juin). |
|
|
00
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 070 ![]() |
oui, on n'effectue pas de calcul directement sur des dates, mais sur des temps en secondes depuis Epoch, pour la raison que tu évoques entre autre.
pour pouvoir trier correctement les fichiers ayant le même préfixe, la date dans leur nom devrait suivre le format YYYY-MM-DD, aussi parce que date -d YYYY-MM-DD +%s fonctionne sans triturage supplémentaire. en bash, il y a rarement besoin de cut, regarde dans le man bash, Remplacement des paramètres, ${paramètre:début:longueur} |
|
|
10
|
|
|
#5 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2011 Messages : 15 ![]() |
La commande date que j'ai est bizarre et n'accepte pas certains paramètres (ton exemple notamment).
Quoi qu'il en est, j'ai finalement décidé de renommer les dossiers en temps Epoch, et pour supprimer ceux datant d'une semaine : Code :
Le script s'exécute toujours à la même heure, tous les jours, donc ce devrait être bon mais le problème est que la "solution" (avoir des dossiers du genre 1307619520/09-06-11) est très peu élégante, et c'est fastidieux quand on recherche un jour particulier : il faut les ouvrir un à un, même si sur 7 jours cela ne fait pas beaucoup. |
||
|
|
10
|
|
|
#6 | ||
|
Membre Expert
![]() Ingénieur développement logiciels Inscription : octobre 2008 Messages : 1 375 ![]() |
Tu peux garder tes noms de dossiers au format que tu veux. Il te suffit pour le traitement de les convertir au format YYYY-MM-DD (qui soit dit en passant est infiniment mieux que DD-MM-YYYY puisque tu as un ordre alphabétique identique à l'ordre chronologique), et d'utiliser date -d pour avoir la date 7 jours avant. Par exemple
Code :
|
||
|
|
00
|
|
|
#7 | |||
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 070 ![]() |
Citation:
Je voyais plutôt, sur un système GNU : Code :
|
|||
|
|
10
|
|
|
#8 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2011 Messages : 15 ![]() |
Oui voilà c'est ça, je n'ai pas la version GNU de la commande date je crois (je suis sur FreeNAS). Donc vos exemples ne fonctionnent malheureusement pas et je suis obligé de trouver des contournements
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com