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 :

Script qui me remonte si un fichier est vide ou pas


Sujet :

Shell et commandes GNU

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 97
    Points : 44
    Points
    44
    Par défaut Script qui me remonte si un fichier est vide ou pas
    Bonjour,

    J'aimerai savoir comment faire afin de lancer un script qui va checker si les fichiers présents dans un répertoire sont vides ou pas et si vides me remonter le nom du fichier ou des fichiers en questions ?

    Merci de vos retours.

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 589
    Points : 19 474
    Points
    19 474
    Par défaut
    ça fait 3 choses :
    • comment lancer un script
    • checker si les fichiers présents dans un répertoire sont vides ou pas
    • remonter le nom du fichier ou des fichiers


  3. #3
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 038
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 038
    Points : 8 405
    Points
    8 405
    Par défaut
    salut,

    avec find par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    find . -maxdepth 1 -type f -empty
    # ou
    find . -maxdepth 1 -type f -empty -printf "%f\n"

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 97
    Points : 44
    Points
    44
    Par défaut
    merci de vos retours, moi j'essaye de chercher le fichier test et ça marche bien ( avec le script ci-dessous) mais je n'arrive pas a insérer vos lignes afin de voir si le fichier est vide ou pas, que dois je modifier ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #!/bin/bash
    if [ -f "/home/anaexp1/test" ]
    then
       echo "Le dossier1 existe !";
    fi

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 589
    Points : 19 474
    Points
    19 474
    Par défaut
    as-tu tapé la commande que je t'ai donnée ?

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 97
    Points : 44
    Points
    44
    Par défaut
    Bonjour,

    Oui quand je tape la commande rien ne se passe alors que le fichier test est bien vide

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 589
    Points : 19 474
    Points
    19 474
    Par défaut

    et qu'affiche la commande en question ?

    parce qu'il faut lire le résultat de cette commande pour comprendre ce qu'il faut faire !

  8. #8
    Expert éminent

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Points : 6 276
    Points
    6 276
    Par défaut
    Salut,
    Citation Envoyé par N_BaH Voir le message
    parce qu'il faut lire le résultat de cette commande pour comprendre ce qu'il faut faire !
    Encore faut-il que ladite commande retourne quelque chose

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ help test | grep 'vide'
     
    $ help test | grep 'empty'
          -s FILE        True if file exists and is not empty.
          -z STRING      True if string is empty.
             STRING      True if string is not empty.

  9. #9
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 97
    Points : 44
    Points
    44
    Par défaut
    Je lance juste la commande sans l’insérer dans mon script, donc au prompt je lance la commande et rien ne se passe (voir ci-dessous)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    user1@prod1:/home/prod1 # help test | grep vide
    user1@prod1:/home/prod1 #
    Alors que mon fichier test est bien vide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    user1@prod1:/home/prod1 # ls -lrt
    total 16
    -rw-r--r--    1 prod1  system            0 Jan 18 09:11 test
    -rw-r--r--    1 prod1  system           11 Jan 18 09:13 test1
    -rwxrwxrwx    1 prod1  system           79 Jan 18 09:14 toto

  10. #10
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 271
    Points : 13 536
    Points
    13 536
    Par défaut
    Bonjour

    Laisse tomber le "grep". C'est peut-être "grep empty". Ou autre.
    Fais juste:
    Et lis.

  11. #11
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 309
    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 309
    Points : 12 817
    Points
    12 817
    Par défaut
    Est-on reparti comme à la bonne époque: https://www.developpez.net/forums/d1...esultat-final/

  12. #12
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 102
    Points : 5 849
    Points
    5 849
    Par défaut
    Merci d'utiliser la balise CODE (en cliquant sur le "#", là, juste au-dessus).

    Citation Envoyé par bomonde Voir le message
    Je lance juste la commande sans l'inserer dans mon script , donc au prompt je lance la commande et rien ne se passe (voir ci-dessous)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    user1@prod1:/home/prod1 # help test | grep vide
    user1@prod1:/home/prod1 #
    Alors que mon fichier test est bien vide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    user1@prod1:/home/prod1 # ls -lrt
    total 16
    -rw-r--r--    1 prod1  system            0 Jan 18 09:11 test
    -rw-r--r--    1 prod1  system           11 Jan 18 09:13 test1
    -rwxrwxrwx    1 prod1  system           79 Jan 18 09:14 toto
    Mon pauvre! T'as vraiment pas de chance!
    Tu as appelé "test" ton fichier de test, alors que c'est le nom d'une des plus importantes commandes!
    Et c'est justement celle qu'on te propose d'utiliser!

    Lorsque tu fais help test, tu demandes (à l'aide de la commande "help") de l'aide sur la commande unix "test" (qui lui est passée en argument), un peu comme man test (qui est plus complet).

    Zipe31 t'as répondu que la partie importante est la ligne contenant "-s", que l'on peut interpréter ainsi:
    Pour tester si un fichier est vide, il suffit de faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if test -s "le_fichier"; then echo "pas vide le_fichier"; else echo "le_fichier est vide"; fi
    Attention! Si le fichier que tu veux tester ne s'appelle pas exactement "le_fichier", il faut peut-être adapter la ligne que je t'ai proposée...

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    345
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 345
    Points : 539
    Points
    539
    Par défaut
    Bonjour,
    Citation Envoyé par disedorgue Voir le message
    Est-on reparti comme à la bonne époque: https://www.developpez.net/forums/d1...esultat-final/
    Trés intéressant !
    Eh bien, il y a des solides ici !!!
    Cordialement.

  14. #14
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 97
    Points : 44
    Points
    44
    Par défaut
    Merci jack-ft , j'ai bien modifier mon nom de fichier et ca marche !!!!!
    Merci également à disedorgue,Flodelarab, zipe31, N_BaH et BufferBob pour vos retours

    ctac on me demande de coder alors que je ne suis que comptable à la base alors je tatonne un peu, mais je vais y arriver grâce à vous :o)

    bonne journée

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/06/2010, 15h45
  2. Réponses: 15
    Dernier message: 30/08/2008, 10h01
  3. Script shell pour tester si un répertoire est vide ou pas
    Par Ito dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 04/10/2006, 17h44
  4. Ksh - tester si un fichier est vide ou pas?
    Par mzt.insat dans le forum Linux
    Réponses: 1
    Dernier message: 25/04/2006, 14h22

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