GNT sans publicité, site mobile, fonctionnalitées exclusives...

Conversions de dates en ksh

Le
gimae
Bonjour,

Il m'est demandé de lister tous les fichiers d'un répertoire qui ont été
créés entre une date de début et une date de fin (qui peut être la date
courante).
Je dois utiliser pour cela une string contenant la date et l'heure: jour,
mois, année, heure, minute, seconde.

La commande find permet de retrouver des fichiers créés depuis un nombre de
minutes donné grâce à aux options -[acm]min (Si vous connaissez une autre
solution, je prends) mais ça ne suffit même pas puisque ma date va jusqu'à
la seconde et en plus il faudrait coder la conversion de la string en
secondes. Les quelques approches de solutions que j'ai trouvées sur le net
utilisent perl mais je cherche à faire la manip en ksh, mais comment ?

Merci pour toute aide
Lire les 20 réponses

Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 4
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Erwan David
Le #23187871
"gimae"
Bonjour,

Il m'est demandé de lister tous les fichiers d'un répertoire qui ont été
créés entre une date de début et une date de fin (qui peut être la date
courante).
Je dois utiliser pour cela une string contenant la date et l'heure: jour,
mois, année, heure, minute, seconde.

La commande find permet de retrouver des fichiers créés depuis un nombre de
minutes donné grâce à aux options -[acm]min (Si vous connaissez une autre
solution, je prends) mais ça ne suffit même pas puisque ma date va jusqu'à
la seconde et en plus il faudrait coder la conversion de la string en
secondes. Les quelques approches de solutions que j'ai trouvées sur le net
utilisent perl mais je cherche à faire la manip en ksh, mais comment ?



Pour la conversion, tu peux utiliser date...

date -d 'chaine' +'format de sortie'



--
Le travail n'est pas une bonne chose. Si ça l'était,
les riches l'auraient accaparé
Alain Ketterlin
Le #23187911
"gimae"
La commande find permet de retrouver des fichiers créés depuis un nombre de
minutes donné grâce à aux options -[acm]min (Si vous conna issez une autre
solution, je prends) mais ça ne suffit même pas puisque ma date va jusqu'à
la seconde



Il me semble qu'on peut utiliser des minutes fractionnaires (0.5 vaut 30
secondes).

et en plus il faudrait coder la conversion de la string en secondes.



Erwan a répondu dans un autre message.

-- Alain.
Gilles Pion
Le #23188061
Ref:

Il m'est demandé de lister tous les fichiers d'un répertoire qui ont été
créés entre une date de début et une date de fin (qui peut être la date
courante).



J'ai le regret de t'informer que ce n'est tout simplement pas possible (sous
Unix en tout cas): la date de *création* d'un fichier n'est pas conservée dans
les attributs de ce dernier.

Seule sont conservées les dates de
* modification du contenu (mtime)
* dernier accès (atime)
* modification des attributs (ctime)


Ref: http://linux.die.net/man/2/stat
--
Gilles Pion
Benoit Izac
Le #23188091
Bonjour,

le 08/03/2011 à 19:44, gimae a écrit dans le message

Il m'est demandé de lister tous les fichiers d'un répertoire qui ont
été créés entre une date de début et une date de fin (qui peut être la
date courante).
Je dois utiliser pour cela une string contenant la date et l'heure:
jour, mois, année, heure, minute, seconde.

La commande find permet de retrouver des fichiers créés depuis un
nombre de minutes donné grâce à aux options -[acm]min (Si vous
connaissez une autre solution, je prends) mais ça ne suffit même pas
puisque ma date va jusqu'à la seconde et en plus il faudrait coder la
conversion de la string en secondes. Les quelques approches de
solutions que j'ai trouvées sur le net utilisent perl mais je cherche
à faire la manip en ksh, mais comment ?



Comme il a été dit, c'est la date de modification qu'il faut prendre en
compte. Pour la solution, tu peux créer deux fichiers avec la commande
touch aux dates que tu souhaites et utiliser l'option -newer de find
pour faire la recherche.

--
Benoit Izac
gimae
Le #23188121
"Gilles Pion"
Ref:

Il m'est demandé de lister tous les fichiers d'un répertoire qui ont été
créés entre une date de début et une date de fin (qui peut être la date
courante).



J'ai le regret de t'informer que ce n'est tout simplement pas possible
(sous
Unix en tout cas): la date de *création* d'un fichier n'est pas conservée
dans
les attributs de ce dernier.

Seule sont conservées les dates de
* modification du contenu (mtime)
* dernier accès (atime)
* modification des attributs (ctime)



Oui je me suis mal exprimée, je pense que le mtime devrait suffire.
Publicité
Suivre les réponses
Poster une réponse
Anonyme