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

Unix Discussion :

Recuperer la liste des derniers fichiers créés


Sujet :

Unix

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 87
    Points : 70
    Points
    70
    Par défaut Recuperer la liste des derniers fichiers créés
    Bonjour,
    Je souhaite trier mon repertoire pour ne recuperer que les fichiers ayant le nom sous la forme :Nom_BP12.0.2-28a.20110414.130006.log , du plus recent au plus ancien. La liste s'arrête quand j'ai les deux fichiers ayant de n° 29 et 30( exemple pour le fichier 30: Nom_BP12.0.2-30.20110414.130115.log )
    Voici le contenu de mon repertoire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    -rwxr-xr-x   1 arbdev3  arboradm    5515 Apr 14 13:00 -rwxr-xr-x   1 arbdev3  arboradm    6345 Apr 14 13:01 Nom_BP12.0.2-28a.20110414.130006.log
    -rwxr-xr-x   1 arbdev3  arboradm    5636 Apr 14 13:01 Nom_BP12.0.2-30.20110414.130115.log
    -rwxr-xr-x   1 arbdev3  arboradm    5650 Apr 14 13:02 Nom_BP12.0.2-30a.20110414.130157.log
    -rwxr-xr-x   1 arbdev3  arboradm    5708 Apr 14 13:03 Nom_BP12.0.2-32a.20110414.130239.log
    -rwxr-xr-x   1 arbdev3  arboradm    5019 Apr 14 13:03 Nom_BP12.0.2-32.20110414.130320.log
    -rwxr-xr-x   1 arbdev3  arboradm   13596 Apr 14 13:05 Nom_BP12.0.2-29.20110414.130358.log
    Merci d'avance.

  2. #2
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ls -lt Nom_BP12.0.2-[0-2][0-9]a.*.log Nom_BP12.0.2-30a.*.log
    je suis pas sur d'avoir bien compris la demande
    c'est ça que tu voulais comme liste ???

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 87
    Points : 70
    Points
    70
    Par défaut
    C'est à peu près ça.
    Mais ce que je veux c'est que dans la liste ci-dessous, qu'il ne retiennent les lignes que jusqu'à la ligne 10 à cause du n° 30(jute avant le 28) qui correspond à la dernière version 30 installée.
    Mon but est de lancer par la suite un rollback sur les 10 premières( ce n'est pas le chiffre 10 qui m'intéresse).
    En réalité, j'ai un script qui doit installer les versions 29 et 30; mais pour cela, il ne doit pas y avoir ces versions déjà installées.
    Donc ce que je souhaite faire, c'est de désinstaller ces versions avant. Et pour cela, toutes les versions installées entretemps, doivent être désinstallées aussi (exemple du 30a ou 29a).
    J'espère avoir été un peu plus clair.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    -rw-rw-r--   1 arbdev3  arboradm    7679 May  2 11:53 Nom.0.2-30.20110502.115217.log
    -rwxr-xr-x   1 arbdev3  arboradm   15647 May  2 11:45 Nom.0.2-29.20110502.114254.log
    -rwxr-xr-x   1 arbdev3  arboradm   15698 May  2 11:01 Nom.0.2-29.20110502.105858.log
    -rwxr-xr-x   1 arbdev3  arboradm   20298 May  2 10:55 Nom.0.2-29.core_bp_duct_educt_mps.CU1DEV3.22333.20110502.105456.log
    -rwxr-xr-x   1 arbdev3  arboradm   20330 May  2 10:55 Nom.0.2-29.core_bp_duct_educt_mps.CU2DEV3.22334.20110502.105456.log
    -rwxr-xr-x   1 arbdev3  arboradm   18598 May  2 10:55 Nom.0.2-29.core_bp_duct_educt.CATDEV3.22332.20110502.105456.log
    -rwxr-xr-x   1 arbdev3  arboradm    3622 Apr 29 17:31 Nom.0.2-30.20110429.173020.log
    -rwxr-xr-x   1 arbdev3  arboradm   13596 Apr 14 13:05 Nom.0.2-29.20110414.130358.log
    -rwxr-xr-x   1 arbdev3  arboradm    5650 Apr 14 13:02 Nom.0.2-30a.20110414.130157.log
    -rwxr-xr-x   1 arbdev3  arboradm    5636 Apr 14 13:01 Nom.0.2-30.20110414.130115.log
    -rwxr-xr-x   1 arbdev3  arboradm    6345 Apr 14 13:01 Nom.0.2-28a.20110414.130006.log
    -rwxr-xr-x   1 arbdev3  arboradm    8899 Apr 14 13:01 Nom.0.2-28a.core_bp.CU1DEV3.815.20110414.130051.log
    -rwxr-xr-x   1 arbdev3  arboradm    8900 Apr 14 13:01 Nom.0.2-28a.core_bp.CU2DEV3.816.20110414.130051.log
    -rwxr-xr-x   1 arbdev3  arboradm    5515 Apr 14 13:00 Nom.0.2-27a.20110414.125927.log
    -rwxr-xr-x   1 arbdev3  arboradm    5500 Apr 14 12:59 Nom.0.2-27.20110414.125846.log
    -rwxr-xr-x   1 arbdev3  arboradm    5509 Apr 14 12:58 Nom.0.2-26.20110414.125807.log
    -rwxr-xr-x   1 arbdev3  arboradm    6351 Apr 14 12:58 Nom.0.2-25.20110414.125701.log
    -rwxr-xr-x   1 arbdev3  arboradm    8681 Apr 14 12:57 Nom.0.2-25.core_bp.CU1DEV3.18010.20110414.125744.log
    -rwxr-xr-x   1 arbdev3  arboradm    8680 Apr 14 12:57 Nom.0.2-25.core_bp.CU2DEV3.18011.20110414.125744.log
    -rwxr-xr-x   1 arbdev3  arboradm    6061 Apr 14 12:57 Nom.0.2-24.20110414.125617.log
    -rwxr-xr-x   1 arbdev3  arboradm    6921 Apr 14 12:56 Nom.0.2-23.20110414.125451.log
    -rwxr-xr-x   1 arbdev3  arboradm    6658 Apr 14 12:56 Nom.0.2-23.ordering.CU1DEV3.10630.20110414.125552.log
    -rwxr-xr-x   1 arbdev3  arboradm    6658 Apr 14 12:56 Nom.0.2-23.ordering.CU2DEV3.10631.20110414.125552.log
    -rwxr-xr-x   1 arbdev3  arboradm    3993 Apr 14 12:55 Nom.0.2-23.ordering.CATDEV3.10629.20110414.125552.log
    -rwxr-xr-x   1 arbdev3  arboradm    5559 Apr 14 12:54 Nom.0.2-22.20110414.125412.log

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 87
    Points : 70
    Points
    70
    Par défaut
    Le but est donc de recupérer la liste de tous les fichiers installés depuis le dernier fichier 29 ou 30 du plus recent au plus ancien, et de les désinstaller dans ce ordre.
    29 ou 30 car le 29 peut être plus ancien que le 30 et vice-versa.

  5. #5
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    tu fais trop de tri dans un simple listage,

    faudrait faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    find .... -newer fichier_réfèrent ... -ls > tmp.file
    sort ......... tmp.file  && rm tmp.file
    un petit bout de code ... sinon tu auras pas le résultat escompté, d'autant plus que tu veux cette info pour un script , autant intégrer ça dans une fonction du script justement.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 87
    Points : 70
    Points
    70
    Par défaut
    Merci pour ta réponse; mais étant débutant en prog shell, puis je te demander à quoi correspond les .... . Le fchier reférent c'est bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NEUF_TELECOM_CEG_ENT_BP12.0.2-29*.*.log NEUF_TELECOM_CEG_ENT_BP12.0.2-3[0-9]*.*.log

  7. #7
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    touch toto
    touch <une_date_anterieure> toto
    find . -type f -name "*foo" -newer toto -ls  && rm toto
    sortira dans l'ordre de résultat de la recherche les fichiers *foo plus récent que le fichier référent toto

    tri le fichier bidule sur les colonnes 3,4

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 87
    Points : 70
    Points
    70
    Par défaut
    Merci

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 87
    Points : 70
    Points
    70
    Par défaut
    J'ai un peu adapté ton code pour avoir ce que je voulais.
    Pour info, le voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find /InstancesArbor/CATDEV3/KBP_APPLI/y/log \( -name 'Nom.0.2-29*.*.log' -o -name 'Nom.0.2-3[0-9]*.*.log' \) -ls | grep -v Nom.0.2-29.core_bp_duct_educt.*.log' | sort -r -n -t. +3 > tmp.file
    Maintenant, ce que je voudrais, c'est depuis mon script initial(père), parcourir le fichier tmp.file en le lisant ligne par ligne faire une vérif ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    cat tmp.file | while read ligne
    	do
    		if [  $ligne contient "Nom.0.2-30.2*.log" ]
    			then
     
    		elif [ $ligne contient "Nom.0.2-29.2*.log" ]
    			then
     
    		elif [ $ligne contient "Nom.0.2-32.2*.log" ]
    			then
     
    		elif [ $ligne contient "Nom.0.2-32.a.2*.log" ]
    			then
     
    		elif [ $ligne contient "Nom.0.2-30.a.2*.log"]
    			then
     
    		else 
    			echo ""
    		fi
     
    	done
    La question est donc de savoir comment on vérifie qu'une ligne contient une chaine donnée. Aussi, est ce que cette syntaxe est correcte?

  10. #10
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    tu es logique c'est bon...

    coté syntaxe...c'est pas ça mais tu comprends le principe.

    déjà on fait plustot

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while read VARIABLE
    do
    ......
    done < fichier
    ce que tu peux donc adapter en partant de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    francois@trillian:~$ while read ligne; do  
    > if grep -iq a <<<$ligne ; then echo ligne_a ; fi
    > if grep -iq b <<<$ligne ; then echo ligne_b ; fi
    > if grep -ivq [ab] <<<$ligne ; then echo ligne_autre ; fi
    > done < toto.t
    ligne_autre
    ligne_autre
    ligne_autre
    ligne_a
    ligne_b
    ligne_autre
    francois@trillian:~$ cat toto.t
    1
    2
    3
    A
    b
    c
    francois@trillian:~$ rm toto.t
    francois@trillian:~$
    c'est pas optimisé mais c'est pour que tu réussisse du premier coup.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 87
    Points : 70
    Points
    70
    Par défaut
    Merci, je vais essayer tout ça.

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 87
    Points : 70
    Points
    70
    Par défaut
    J'ai une erreur à chaque fois.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    syntax error at line n°_ligne_du_if: `<' unexpected
    C'est un script sh que j'exécute.

  13. #13
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    doit etre un problème de shell ...
    entre bash / sh / ksh il y a parfois des différences..

    utilises en entete de script pour forcer bash par exemple.

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 87
    Points : 70
    Points
    70
    Par défaut
    Merci.

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 87
    Points : 70
    Points
    70
    Par défaut
    Je reviens pour un problème de EOF que je rencontre lors de l'exécution de mon script que j'ai adapté. J'ai le message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     EOF encountered while reading standard in. Now exiting...

Discussions similaires

  1. Réponses: 4
    Dernier message: 05/10/2012, 16h39
  2. Menu dynamique - liste des derniers fichiers ouverts
    Par Elmotardo dans le forum Eclipse Platform
    Réponses: 6
    Dernier message: 08/07/2009, 15h51
  3. Comment recuperer la liste des derniers sites visités.
    Par freestyler1982 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 15/09/2008, 14h24
  4. [InnoSetup] recuperer la liste des fichiers source
    Par Ben_Le_Cool dans le forum Installation, Déploiement et Sécurité
    Réponses: 5
    Dernier message: 26/07/2006, 17h30
  5. Réponses: 9
    Dernier message: 27/10/2005, 22h38

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