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 :

Rediriger file dans une variable


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2012
    Messages : 10
    Par défaut Rediriger file dans une variable
    Bonjour,

    Je débute en scirpt shell et cela fait un bout de temps que je retourne le problème dans tous les sens, mais là je coince ...
    Voila l'idée : le script doit permettre d'afficher la liste des fichiers dans un répertoire en les triant par type. C'est un exercice de cours ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    find . -maxdepth 1 -type f | while read line
    do
        VAR=`file $line`
        #echo $VAR  <== ici la commande fonctionne
    done
        echo -e $VAR # <== ici VAR est vide ???
        #echo -e $J | sort -t ':' +1 -2
    Si vous avez une idée ...

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par défaut
    Si je comprends le but de l'exercice il s'agit de faire la liste des fichiers, d'en déterminer le type et de trier le résultat par type de fichier. Dans ce cas, une solution possible pourrait être celle-ci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find . -maxdepth 1 -type f -exec file {} \; | sort -t ':' -k2

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2012
    Messages : 10
    Par défaut
    Merci !!!

  4. #4
    Expert confirmé

    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
    Par défaut
    Salut,

    Une autre façon de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ls -FX /répertoire | grep -v '/$'

  5. #5
    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
    Par défaut
    Citation Envoyé par umiak Voir le message
    Voila l'idée : le script doit permettre d'afficher la liste des fichiers dans un répertoire en les triant par type. C'est un exercice de cours ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    find . -maxdepth 1 -type f | while read line
    do
        VAR=`file $line`
        #echo $VAR  <== ici la commande fonctionne
    done
        echo -e $VAR # <== ici VAR est vide ???
        #echo -e $J | sort -t ':' +1 -2
    Si vous avez une idée ...
    Bonjour.

    2 petites remarques:
    1) algorithmiquement parlant, que t'attends-tu à trouver dans $VAR après la sortie de boucle?
    La valeur de `file $line` du dernier fichier de la liste?
    Si oui, pour quoi faire?
    Sinon, pour quoi faire?

    2) Certains shells exécutent le 'pipe while' dans un sous-process rendant impossible la récupération de variables modifiées dans la boucle. Cela semble être le cas du shell que tu utilises.

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

Discussions similaires

  1. Rediriger les flux de la console dans une variable
    Par Charles Plante dans le forum C++
    Réponses: 2
    Dernier message: 22/02/2014, 01h12
  2. Rediriger la sortie standard dans une variable
    Par Erielle dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 22/10/2010, 16h24
  3. rediriger le contenu de echo dans une variable
    Par mitou dans le forum Langage
    Réponses: 2
    Dernier message: 15/07/2008, 09h19
  4. Réponses: 8
    Dernier message: 19/09/2007, 16h51
  5. [langage] Extraire un block dans une variable multiligne
    Par |DUCATI| DesMo dans le forum Langage
    Réponses: 9
    Dernier message: 11/02/2003, 14h56

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