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

Shell et commandes GNU Discussion :

Supprimer les fichiers les plus anciens


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Employé magasin
    Inscrit en
    Août 2012
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Employé magasin

    Informations forums :
    Inscription : Août 2012
    Messages : 197
    Par défaut Supprimer les fichiers les plus anciens
    Bonjours,
    Avec dropbox je récupère un fichier comme ceci:

    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
     > Listing "/file"... DONE
     [F] 80403323  timelapse_2017-03-13.mp4
     [F] 99122724  timelapse_2017-03-14.mp4
     [F] 99180520  timelapse_2017-03-15.mp4
     [F] 112709424 timelapse_2017-03-16.mp4
     [F] 124944703 timelapse_2017-03-17.mp4
     [F] 292493690 timelapse_2017-03-18.mp4
     [F] 107236689 timelapse_2017-03-19.mp4
     [F] 133194778 timelapse_2017-03-20.mp4
     [F] 96540143  timelapse_2017-03-21.mp4
     [F] 115569667 timelapse_2017-03-22.mp4
     [F] 96590340  timelapse_2017-03-23.mp4
     [F] 129278447 timelapse_2017-03-24.mp4
     [F] 60008843  timelapse_2017-03-25.mp4
     [F] 93706555  timelapse_2017-03-27.mp4
     [F] 158942109 timelapse_2017-03-29.mp4
     [F] 102020486 timelapse_2017-03-30.mp4
     [F] 83341070  timelapse_2017-03-31.mp4
     [F] 37175743  timelapse_2017-04-01.mp4
     [F] 93388105  timelapse_2017-04-05.mp4
    J'ai un code pour boucler sur le fichier comme çà:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    head -n -2 ${FILE} | tail -n -2 | awk '{print $3}' | while read LINE; do
    Mon problème:
    c'est que j'aimerais de façon simple pouvoir boucler sur le fichier et de choisir le nombre de fichier a garder simplement et que suivant le nombre choisit supprimer les fichiers les plus ancien du dossier et je comprends pas comment faire. quoi correspondent les numéro en paramètres ?

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 663
    Par défaut
    Bonjour,

    soit aGarder=12 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $ tail -n $(($(wc -l <fichierTest) - (aGarder +1) )) fichierTest | awk '{print $3}'
    timelapse_2017-03-25.mp4
    timelapse_2017-03-27.mp4
    timelapse_2017-03-29.mp4
    timelapse_2017-03-30.mp4
    timelapse_2017-03-31.mp4
    timelapse_2017-04-01.mp4
    timelapse_2017-04-05.mp4
    mais quitte à utiliser awk, autant vraiment utiliser awk :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $ awk -vtoKeep=$aGarder 'NR>toKeep+1{print $3}' fichierTest 
    timelapse_2017-03-25.mp4
    timelapse_2017-03-27.mp4
    timelapse_2017-03-29.mp4
    timelapse_2017-03-30.mp4
    timelapse_2017-03-31.mp4
    timelapse_2017-04-01.mp4
    timelapse_2017-04-05.mp4
    couplé avec xargs...
    hopla !
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre confirmé
    Homme Profil pro
    Employé magasin
    Inscrit en
    Août 2012
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Employé magasin

    Informations forums :
    Inscription : Août 2012
    Messages : 197
    Par défaut
    J'ai essayé et ça me donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Suppression de timelapse_2017-03-27.mp4 ...
    Suppression de timelapse_2017-03-29.mp4 ...
    Suppression de timelapse_2017-04-01.mp4 ...
    Suppression de timelapse_2017-04-05.mp4 ...
    Alors que dans mon fichier j'ai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     [F] 122812559 timelapse_2017-03-15.mp4
     [F] 109586518 timelapse_2017-03-16.mp4
     [F] 155376445 timelapse_2017-03-18.mp4
     [F] 42880575  timelapse_2017-03-19.mp4
     [F] 142167030 timelapse_2017-03-20.mp4
     [F] 75741770  timelapse_2017-03-21.mp4
     [F] 92672190  timelapse_2017-03-22.mp4
     [F] 50346505  timelapse_2017-03-23.mp4
     [F] 126290279 timelapse_2017-03-24.mp4
     [F] 30421780  timelapse_2017-03-25.mp4
     [F] 63829615  timelapse_2017-03-27.mp4
     [F] 126381439 timelapse_2017-03-29.mp4
     [F] 25168973  timelapse_2017-04-01.mp4
     [F] 48102651  timelapse_2017-04-05.mp4
    Pour le test, j'ai mit à 10, donc ça me sélectionne bien 4 fichiers, car 14 lignes sauf que c'est pas les 4 premiers. Ca ne prend les 4 dernier a la place!!! Pourquoi ?

  4. #4
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 354
    Par défaut
    Bonjour,

    Normal, le awk de N_BaH affiche les dernières $aGarder ligne du fichier.

    En fait, pour ton besoin, il y a beaucoup plus simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    head -n -${aGarder} fichierTest | awk '$0=$3'
    le head ici, va lire toutes les lignes de ton fichier sauf les $aGarder dernière, puis le awk te donnera le 3ème champs de chaque ligne.

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 663
    Par défaut
    Citation Envoyé par disedorgue
    le awk de N_BaH affiche les dernières $aGarder ligne du fichier.
    awk n'affiche pas les $aGarder première lignes.
    Citation Envoyé par Lprofessionnelle
    Ca ne prend les 4 dernier a la place!!! Pourquoi ?
    j'ai fourni une démonstration probante.
    as-tu modifié quelque chose à la ligne de commande, hormis le chemin du fichier, et le nombre de lignes aGarder ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 354
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    awk n'affiche pas les $aGarder première lignes.
    On est d'accord, je dis bien les $aGarder dernières lignes.

    Après pour le souci du monsieur, je comprends qu'il veut justement les conserver et que c'est les autres qu'il veut supprimer...

    Donc, "my way" , les specs ne sont pas claires

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

Discussions similaires

  1. [Batch] Supprimer le fichier le plus ancien d'un dossier
    Par Egan69 dans le forum Scripts/Batch
    Réponses: 11
    Dernier message: 27/06/2013, 13h27
  2. Supprimer les fichiers Excel plus vieux que 7 jours
    Par jeje00 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/07/2009, 20h05
  3. Réponses: 4
    Dernier message: 06/08/2008, 14h52
  4. Supprimer le fichier le plus ancien dans un dossier
    Par sweaty dans le forum Delphi
    Réponses: 5
    Dernier message: 25/02/2007, 16h33

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