IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Nombre de jours depuis modif d'un fichier [KSH]


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 83
    Par défaut Nombre de jours depuis modif d'un fichier [KSH]
    Bonjour Oh Grand(s) Manitou(s) du Korn Shell!

    Voilà depuis quelques heures que je suis bloqué sur une petite fonction à développer.
    J'aimerai savoir s'il est possible d'obtenir le nombre de jours depuis lequel le fichier a été modifié.

    Je bloque je bloque !

    Merci à tous pour votre aide !

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 417
    Par défaut
    tu bidouilles la commande ls

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    => ls -l --full-time | grep filename| sed 's/.*\([0-9][0-9]\)-\([0-9][0-9]\).*/\1 \2/g'
    08 13
    08 le mois, 13 le jour par exemple

    ensuite avec la fonction "date" et de l'arithmétique tu devrais t en sortir

  3. #3
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 640
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 640
    Par défaut
    ... dont la forme courte serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    date -r filename '+%m %d'
    Cependant, pour le calcul sur les dates, il est préférable de convertir les dates en secondes depuis epoch, d'effectuer le calcul souhaité, puis de convertir à nouveau dans un format lisible par un humain.

    edit: Mais ça ne répond pas à ta question en fait...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    date -r filename
    lundi 13 juillet 2009, 17:22:44 (UTC+0200)
    echo "$((($(date -u +%s) - $(date -ur filename '+%s')) / 86400)) jour(s)"
    34 jour(s)
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  4. #4
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 83
    Par défaut
    Merci Ashin et N_Bah pour vos réponses.
    En me creusant un peu la tête, je suis passé par du PERL et voici ce que ça donne:

    date_Modif_Fichier=`perl -e '($atime,$mtime,$ctime)=(stat($ARGV[0]))[8..10];print "$mtime\n";' $NOMFICHIER `
    Current_Date=`date -u '+%s'`
    let "Modif_en_jour=$Current_Date-$date_Modif_Fichier"
    let "Modif_en_jour=$Modif_en_jour/3600/24"
    echo $Modif_en_jour
    On a finalement la date de Modif en jour. Y'a ptete moyen de simplifier non?

  5. #5
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 640
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 640
    Par défaut
    J'ai du mal à imaginer plus simple, que le code donné dans mon 'edit'
    ...
    ?
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 417
    Par défaut
    en gardant ta façon, on va privilégier le bourne shell:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #!/bin/sh -f
     
    date_Modif_Fichier=`perl -e '($atime,$mtime,$ctime)=(stat($ARGV[0]))[8..10];print "$mtime\n";' $1 `
    Current_Date=`date -u '+%s'`
     
    calcul=`expr $Current_Date - $date_Modif_Fichier`
    calcul=`expr $calcul / 86400`
    echo $calcul
    sinon la solution en une ligne reste la plus simple

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Flash Pascal] Nombre de jours depuis une date du passé
    Par Roland Chastain dans le forum Flash Pascal
    Réponses: 7
    Dernier message: 17/03/2014, 23h17
  2. Réponses: 2
    Dernier message: 12/08/2011, 14h07
  3. [AC-2003] Modification d'un fichier texte depuis Access
    Par phoon dans le forum VBA Access
    Réponses: 1
    Dernier message: 07/05/2009, 16h45
  4. nombres de jours écoulé depuis une date fixe
    Par dams78 dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 19/12/2007, 14h44
  5. nombre de modification d'un fichier
    Par kda007 dans le forum Langage
    Réponses: 4
    Dernier message: 15/02/2006, 22h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo