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 :

petit script, calculer taille fichier


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    166
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 166
    Par défaut petit script, calculer taille fichier
    bonjour à tous, je cherche a réaliser un script qui permet de recupérer le nom d'un fichier, calculer sa taille, si elle est sup a 512o, il doit dire " it's a big file" sinon "it's a small file". je ne souhaite pas que vous me donniez le script en entier sinon je ne cherche pas mais je bute sur un petit soucis. voici l'ebauche de script que j'ai faite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #!/bin/bash
    #ce script doit recupérer le nom d'un fichier, calculer sa taille, si elle est sup a 512o, il doit dire " it's a big file" sinon "it's a small file"
    fichier = $1;
    if [ $# != 1 ]
    then echo "Usage : ./tp4.sh <file name>"
    exit
    fi
    if [ -e fichier ]
    find / -type f -name "$1" -print 
    else 
    echo "Usage : ./tp4.sh <file name>"
    fi
    exit
    la ligne qui m'ennuie est en rouge, pour le moment je lui demande de trouver le fichier. je voulais mettre un pipe pour utiliser la sortie et calculer le poinds du fichier mais je ne sais pas ce que je dois utiliser pour ça...

  2. #2
    Membre expérimenté
    Profil pro
    Ingénieur
    Inscrit en
    Mars 2007
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Mars 2007
    Messages : 199
    Par défaut
    La commande wc pourrait peut être t'aider.

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 658
    Par défaut
    Si le fichier existe (j'aurais d'ailleurs plutôt fait -f pour être sûr qu'il s'agit d'un fichier normal), il n'est pas nécessaire de retrouver le fichier avec find
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Kuchiki Byakuya Voir le message
    bonjour à tous, je cherche a réaliser un script qui permet de recupérer le nom d'un fichier, calculer sa taille, si elle est sup a 512o, il doit dire " it's a big file" sinon "it's a small file". je ne souhaite pas que vous me donniez le script en entier sinon je ne cherche pas mais je bute sur un petit soucis. voici l'ebauche de script que j'ai faite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #!/bin/bash
    #ce script doit recupérer le nom d'un fichier, calculer sa taille, si elle est sup a 512o, il doit dire " it's a big file" sinon "it's a small file"
    fichier = $1;
    if [ $# != 1 ]
    then echo "Usage : ./tp4.sh <file name>"
    exit
    fi
    if [ -e fichier ]
    find / -type f -name "$1" -print 
    else 
    echo "Usage : ./tp4.sh <file name>"
    fi
    exit
    Citation Envoyé par N_BaH Voir le message
    Si le fichier existe (j'aurais d'ailleurs plutôt fait -f pour être sûr qu'il s'agit d'un fichier normal), il n'est pas nécessaire de retrouver le fichier avec find
    La remarque de N_BaH est bien dit. De plus, la syntaxe "fichier = $1" n'est pas correcte en shell. La bonne syntaxe sera "fichier=$1". J'espère que tu verras la différence.
    De plus, toutes les autres références à "fichier" dans le script semblent indiquer que tu t'intéresses au contenu de la variable fichier. Donc mettre un "$" devant le token sera un plus non négligeable pour la réussite de ton TP...

    Citation Envoyé par Kuchiki Byakuya Voir le message
    je voulais mettre un pipe pour utiliser la sortie et calculer le poinds du fichier mais je ne sais pas ce que je dois utiliser pour ça...
    Un pipe est un outil permettant de prendre la sortie de la commande 1 comme entrée de la commande 2.
    Si tu mets un pipe entre un find et un wc, alors wc prendra comme entrée le flux de datas affichés par le find. Donc tu ne compteras que le listing affiché par le find.
    Reste simple. Tu as un fichier, tu le passes simplement par wc -c et t'auras sa taille en caractères. Le reste n'est qu'une affaire de syntaxe.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 658
    Par défaut
    La page de man de la version de wc (GNU coreutils) 6.10 indique
    -c, --bytes
    afficher le nombre d’octets

    -m, --chars
    afficher le nombre de caractères
    ...
    ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    La page de man de la version de wc (GNU coreutils) 6.10 indique...
    ?
    C'est peut-être à cause de l'UTF8. En UTF8, le caractère "é" ne fait qu'un caractère mais s'écrit sur 2 bytes. Bon, j'ai écrit "caractères" dans mon post précédent mais c'était par habitude...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 658
    Par défaut
    Ah, d'accord...

    Mais, c'est trompeur, tout de même, ces options courtes, qui ne reprennent pas l'initiale des options longues...
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  8. #8
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    166
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 166
    Par défaut
    merci pour toutes ces réponses : vous me conseillez donc d'utiliser wc directement, style : wc -c "$1" ???
    pour les pipes j'avais bien compris vu ce que tu m'a mis.

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

Discussions similaires

  1. petit script lecture fichier en ligne
    Par Eleanor dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 18/05/2012, 16h22
  2. Calculer taille d'une liste de fichiers dans un Array
    Par Sprsrini dans le forum VB.NET
    Réponses: 1
    Dernier message: 22/07/2011, 11h09
  3. Calculer taille fichier depuis un worfklow
    Par Jc75011 dans le forum Informatica
    Réponses: 2
    Dernier message: 02/11/2009, 10h34
  4. [PHP 4] Petit Script Qui Permet De Supprimer Tous Les Fichiers D'un Dossier
    Par The_Haunted dans le forum Langage
    Réponses: 5
    Dernier message: 03/01/2009, 15h15
  5. script shell: fonction taille fichier/dossier
    Par guluk21 dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 29/05/2008, 18h17

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