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 :

Recherche de fichier en shell


Sujet :

Linux

  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2007
    Messages : 273
    Par défaut Recherche de fichier en shell
    Bonjour tout le monde!!!!

    Voilà dans un de mes script, j'utilise un soft qui me créée un fichier à partir d'un autre. Là rien d'exceptionnel, le problème c'est que je ne choisi pas le nom du fichier créé, il est mis par défaut par le logiciel.

    exemple :
    fichier_source.txt
    fichier_source-dec.txt

    Pour mes traitements ultérieurs, j'ai besoin de savoir si le fichier créé (fichier_source-dec.txt) a une taille supérieur à 100Ko.

    ma question est donc : comment faire en commande shell pour mettre dans une variable le nom du fichier créé?
    là j'en ai pas la moindre idée. Je suis une brelle en commande linux faut dire ce qui est. Je pense que je peux faire un truc du style ls -o | grep nom_fichier_source
    mais j'aurais mes deux fichier.. comment faire? please help

  2. #2
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut
    find à une option pour la taille des fichiers à trouver.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2007
    Messages : 273
    Par défaut
    Ok merci!!

    Quand jke fais ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    fic="/root/test.pcap"
     
    path_fic=pwd $fic
    origine=basename $fic .pcap
    extension="-dec.pcap"
    origine=${path_fic}${origine}${extension}
    j'obtiens :

    /root
    test
    -dec.pcap

    Bon hormis le fait qu'il manque un "/", le problème est qu'il me met tout sur plusieurs ligne ce qui peut être problématique. Auriez vous des idées? merci

  4. #4
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2007
    Messages : 273
    Par défaut
    C'est bon j'ai trouvé les solutions de tous mes problèmes merci pour l'aide

  5. #5
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2007
    Messages : 273
    Par défaut
    Bon alors, j'ai pas fais attention à ce que j'ai fait et le résultat de l'une de mes commande est foireux
    quand je tape pwd file_name

    je ne récupère pas le nom du répertoire courant, mais bien celui sur lequel je suis entrain de bosser. Donc c'est pas bon.

    Est-ce que vous connaitriez une commande me permettant de n'avoir que le chemin du répertoire dans lequel se trouve mon fichier?

    Merci

  6. #6
    Membre émérite Avatar de valefor
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    711
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 711
    Par défaut
    dirname

  7. #7
    Membre émérite Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Par défaut
    Si cela peut t'aider

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    set -x
     
    Infile="./repert/fichier_source.txt"
     
    Dir=`dirname $Infile`
    Outfile=`basename $Infile '.txt'`"-dec.txt"
     
    if [[ `find $Dir -name $Outfile -size +100k -print | wc -l` -eq 1 ]] ; then
        echo "* Trouvé $Outfile supérieur à 100 Ko"
    fi
    Trace à l'exécution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    + Infile=./repert/fichier_source.txt
    ++ dirname ./repert/fichier_source.txt
    + Dir=./repert
    ++ basename ./repert/fichier_source.txt .txt
    + Outfile=fichier_source-dec.txt
    ++ find ./repert -name fichier_source-dec.txt -size +100k -print
    ++ wc -l
    + [[ 1 -eq 1 ]]
    + echo '* Trouvé fichier_source-dec.txt supérieur à 100 Ko'
    * Trouvé fichier_source-dec.txt supérieur à 100 Ko

Discussions similaires

  1. Recherche dans fichiers
    Par Tchinkatchuk dans le forum Linux
    Réponses: 2
    Dernier message: 17/06/2005, 10h32
  2. Réponses: 14
    Dernier message: 25/10/2004, 21h33
  3. Modifier chaîne dans fichier en shell
    Par MiKLnet dans le forum Autres langages
    Réponses: 2
    Dernier message: 11/10/2004, 11h31
  4. batch de recherche de fichier ...
    Par Félia dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 29/07/2004, 15h54
  5. Recherche support fichier
    Par sydiop dans le forum Informix
    Réponses: 5
    Dernier message: 18/03/2004, 10h15

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