Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Conversions de dates en ksh

20 réponses
Avatar
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

10 réponses

1 2
Avatar
Hugues
Ce cher Antoine Leca a posté :

Hugues écrivit :

*** Oui, mais j'aimerais bien savoir comment décrire la chaîne date. Le
problème avec Unix c'est que les man sont très complets mais que les


s/unix/linux/



Ah tiens, les pages man des outils GNU, c'est du Linux ?



Heu, une des différences entre le projet GNU et Linux, c'est pas
justement que le second a des pages de man et pas le premier, qui
utilise info à la place ?



% man linux
Aucune entrée de manuel pour linux
%



--
Hugues Hiegel [http://www.hiegel.fr/~hugues/]

Et pis je préfère infiniment l'ergonomie des pages man à celles des
pages info...
Avatar
Benoit Izac
Bonjour,

le 10/03/2011 à 15:37, Hugues a écrit dans le message
:

Ah tiens, les pages man des outils GNU, c'est du Linux ?



Heu, une des différences entre le projet GNU et Linux, c'est pas
justement que le second a des pages de man et pas le premier, qui
utilise info à la place ?



% man linux
Aucune entrée de manuel pour linux



Ça marche aussi dans l'autre sens :
% man gnu GNU
No manual entry for gnu
No manual entry for GNU
% info gnu | head
[...]
The Gnus Newsreader
[...]

Et pourtant la documentation Linux (le noyau) ne manque pas :
% uname -s; ls /usr/share/man/man9/ | wc -l
Linux
3286

--
Benoit Izac
Avatar
Hugues
Ce cher Benoit Izac a posté :

Bonjour,

le 10/03/2011 à 15:37, Hugues a écrit dans le message
:

Ah tiens, les pages man des outils GNU, c'est du Linux ?



Heu, une des différences entre le projet GNU et Linux, c'est pas
justement que le second a des pages de man et pas le premier, qui
utilise info à la place ?



% man linux
Aucune entrée de manuel pour linux



Ça marche aussi dans l'autre sens :
% man gnu GNU
No manual entry for gnu
No manual entry for GNU
% info gnu | head
[...]
The Gnus Newsreader
[...]



;)

Et pourtant la documentation Linux (le noyau) ne manque pas :
% uname -s; ls /usr/share/man/man9/ | wc -l
Linux
3286



:)


M'enfin, la majorité des pages man consultées font partie de la section
1, qui regroupe essentiellement des programmes GNU (mais pas que,
certes).

--
Hugues Hiegel [http://www.hiegel.fr/~hugues/]
Avatar
Benoit Izac
Bonjour,

le 10/03/2011 à 17:00, Hugues a écrit dans le message
:

M'enfin, la majorité des pages man consultées font partie de la section
1, qui regroupe essentiellement des programmes GNU (mais pas que,
certes).



Sous Linux, oui, mais on est sur fcou. Ensuite, même sur un système
Linux, rien n'empêche d'installer les pages man issues de SUSv3 --
d'ailleurs ma distribution les inclut dans le paquet man-pages.

--
Benoit Izac
Avatar
Paul Gaborit
À (at) Fri, 11 Mar 2011 00:43:27 +0100, Cyrille Lefevre
<cyrille.lefevre-news% écrivait (wrote):

pourquoi la compatibilité ascendante n'est pas respectée d'une version
à l'autre ?
ex. : tail
avant SUSv4, on pouvait faire ça : tail +5 /etc/passwd
depuis je ne sais plus quelle version des coreutils, ce n'est plus
possible sauf si l'on positionne une variable à la con
(_POSIX2_VERSION 0112 en l'occurence), sinon, il faut faire tail -n
+5 /etc/passwd.



<mode metatroll>

Parce que cette syntaxe avec des options qui ne commencent pas "-" est
une catastrophe pour les gens qui, comme moi, utilisent de nombreux
fichiers dont le nom est de la forme +345623.

</mode metatroll>


Cordialement,



+1

--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
Avatar
Benoit Izac
Bonjour,

le 12/03/2011 à 00:37, Paul Gaborit a écrit dans le message
:

avant SUSv4, on pouvait faire ça : tail +5 /etc/passwd
depuis je ne sais plus quelle version des coreutils, ce n'est plus
possible sauf si l'on positionne une variable à la con
(_POSIX2_VERSION 0112 en l'occurence), sinon, il faut faire tail -n
+5 /etc/passwd.



<mode metatroll>

Parce que cette syntaxe avec des options qui ne commencent pas "-" est
une catastrophe pour les gens qui, comme moi, utilisent de nombreux
fichiers dont le nom est de la forme +345623.



Le problème est le même avec des noms en -xxxxxx et c'est justement le
rôle de « -- » de contourner ce problème.

% mkdir vide && cd vide
% ls -A
% touch -- -l
% ls -A
-l
% ls *
total 0
-rw-r--r-- 1 benoit benoit 0 Mar 12 08:28 -l
% ls -- *
-l

--
Benoit Izac
Avatar
Nicolas George
Benoit Izac , dans le message , a écrit :
Le problème est le même avec des noms en -xxxxxx et c'est justement le
rôle de « -- » de contourner ce problème.



Sauf qu'on le sait et qu'on évite de mettre des - en début de nom de fichier
entre autres pour ça.

Que penserais-tu d'un outil usuel qui déciderait de traiter de manière
spéciale ses arguments commençant par un a ?
Avatar
Benoit Izac
Bonjour,

le 12/03/2011 à 09:48, Nicolas George a écrit dans le message
<4d7b334f$0$1218$ :

Le problème est le même avec des noms en -xxxxxx et c'est justement le
rôle de « -- » de contourner ce problème.



Sauf qu'on le sait et qu'on évite de mettre des - en début de nom de fichier
entre autres pour ça.



Mais ce n'est pas forcément toi qui va nommer les fichiers. Eux (en
opposition à on) ne le savent pas forcément.

Que penserais-tu d'un outil usuel qui déciderait de traiter de manière
spéciale ses arguments commençant par un a ?



Que c'est une erreur ; dans le cas de tail, ça a été corrigé, SUSv3 ne
le permet pas (ou j'ai mal lu) :
<http://pubs.opengroup.org/onlinepubs/009695399/utilities/tail.html>

Après, que l'implémentation ne soit pas conforme à la norme, c'est une
autre histoire...

--
Benoit Izac
Avatar
Nicolas George
Benoit Izac , dans le message , a écrit :
Mais ce n'est pas forcément toi qui va nommer les fichiers.



Mais c'est souvent moi. Et quand c'est moi, et que je sais que je n'ai pas
été idiot, j'ai envie de pouvoir taper les lignes de commandes de la manière
la plus simple possible, sans me demander si telle ou telle commande qui
s'estime plus spéciale que les autres a décidé d'accorder un sens à un
caractère normalement inoffensif.

Que c'est une erreur ; dans le cas de tail, ça a été corrigé, SUSv3 ne
le permet pas (ou j'ai mal lu) :
<http://pubs.opengroup.org/onlinepubs/009695399/utilities/tail.html>



Précisément. Et c'est une très bonne chose.
Avatar
Paul Gaborit
À (at) Sat, 12 Mar 2011 12:52:56 +0100, Cyrille Lefevre
<cyrille.lefevre-news% écrivait (wrote):


dans le cas présent, je ne vois pas en quoi ça gène ?



Les options *doivent* commencer par "-". C'est tout. Pas d'excpetion !
Même pour des raisons de compatibilité ascendante avec de mauvais choix
faits précédemment.


$ tail -- +345623



Pourquoi ce "--" ? Mon nom de fichier ne commence pas par "-" et ne peut
donc pas être confondu avec une option...

--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
1 2