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 :

Tri de fichiers


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 147
    Par défaut Tri de fichiers
    Salut,

    Je dois écrire un srcipt permettant de dénombrer les fichiers du répertoire courant dans les 4 catégories suivantes :
    - Fichiers (cachés ou non) dont le nom se termine par .txt
    - Fichiers (cachés ou non) dont le nom se termine par .sh
    - Fichiers cachés
    - Autres fichiers

    J'aimerai aussi afficher chaque résultat sous la forme :
    Il y a 2 fichiers dont le nom se termine par .txt


    J'aimerai que quelqu'un m'aide à écrire ce script car je galère vraiment.
    Merci d'avance.

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut
    - initialiser des variables TXT et SH à 0
    - lister le contenu du répertoire à l'aide du boucle for
    - vérifier qu'il s'agit d'un fichier normal
    - vérifier qu'il se termine par .txt
    - incrémenter la variable TXT
    - vérifier qu'il se termine par .sh
    - incrémenter la variable SH
    - fin de la boucle
    - faire afficher la phrase que tu souhaites
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 147
    Par défaut
    Faut-il effectuer les test dans la boucle for.
    Comment et quoi écrire dans cette boucle ?

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut
    Citation Envoyé par Lenou
    Faut-il effectuer les test dans la boucle for.
    oui
    J'aurais dû marquer la fin de la boucle (c'est corrigé)
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 147
    Par défaut
    #! /bin/sh
    TXT=0
    SH=0

    ....


    Il n'y a pas une façon plus simple de le faire et que je puisse comprendre parce que là, je comprends à moitié.
    Je ne connais pas la commande find -maxdepth ...

  6. #6
    Membre émérite Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Par défaut
    La commande find (en français checher) est spécialisée dans la recherche de fichiers sur de nombreux critères. Ici on demande:

    • de chercher dans le répertoire courant: . (point).
    • de chercher sur un seul niveau: maxdepth veut dire profondeur max, et vaut 1, c'est-à dire qu'on reste dans le même répertoire. Sinon find va chercher dans les sous-répertoires aussi.
    • de ne prendre que les fichiers normaux, pas les répertoires par exemple: -type f.
    • de sélectionner sur le nom avec les expressions régulières: -regex. À la premiere ligne, il y a .* qui veux dire "des caractères quelconques", puis \. qui veut dire "point" et enfin txt$ qui veut dire "txt en fin de nom (du fichier)".

    Dans le cas où find trouve un nom qui correspond, il l'affiche et la commande suivante, grep, récupère le résultat et compte le nombre de lignes récupérées grâce à l'option -c, lignes qui contiennent au moins un caractère (grâce au point).

    Je ne vois pas plus simple. Il faut juste connaître les commandes UNIX. Ça vient un peu à la fois.

  7. #7
    Membre émérite Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Par défaut
    Bonsoir,

    Voici une autre manière de faire; si tu ne comprends pas certaines choses, regarde dans la man page. Si toujours pas, demande ici.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #!/bin/bash
    txt=$(find . -maxdepth 1 -type f -regex .*\.txt$ | grep -c .)
    echo "Il y a $txt fichier(s) de type *.txt"
    sh=$(find . -maxdepth 1 -type f -regex .*\.sh$ | grep -c .)
    echo "Il y a $sh fichier(s) de type *.sh"
    hid=$(find . -maxdepth 1 -type f -regex \./\..* | grep -c .)
    echo "Il y a $hid fichier(s) caché(s)"
    oth=$(find . -maxdepth 1 -type f -regex \./[^.].* | grep -c .)
    echo "Il y a $oth fichier(s) non caché(s)"

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

Discussions similaires

  1. tri de fichier
    Par sondess dans le forum C
    Réponses: 6
    Dernier message: 17/10/2006, 14h34
  2. [CListCtrl] Tri de fichiers
    Par Rupella dans le forum MFC
    Réponses: 19
    Dernier message: 07/09/2006, 16h40
  3. Tri de fichier avec le "sort"
    Par LFC dans le forum Langage
    Réponses: 1
    Dernier message: 08/03/2006, 07h55
  4. Tri de fichier
    Par difficiledetrouver1pseudo dans le forum Linux
    Réponses: 2
    Dernier message: 22/02/2006, 16h47
  5. [langage] tri de fichier
    Par jj77 dans le forum Langage
    Réponses: 7
    Dernier message: 16/11/2004, 16h35

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