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 :

Problème sur une commande shell


Sujet :

Shell et commandes GNU

  1. #1
    Membre habitué Avatar de nicolas66
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    326
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 326
    Points : 146
    Points
    146
    Par défaut Problème sur une commande shell
    Bonjour,

    Je recherche une commande ou une série de commandes me permettant d'afficher la liste des répertoires d'un répertoire donné en excluant les répertoires courant et parent. Merci d'avance à ceux qui pourront m'aider

    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Je souhaite obtenir la liste des répertoires du répertoire "toto". Voici le contenu du répertoire "toto" :
     
    .
    ..
    divers1.txt
    divers2.txt
    blagues
    historique
     
    Au final, je dois obtenir une chaîne de caractères avec l'ensemble des répertoires séparés par des espaces :
     
    blagues historique

    Nico.
    Athlon 6000+ Dual Core & GeForce 8600 GT -- Ubuntu Gutsy

  2. #2
    Invité
    Invité(e)
    Par défaut
    Man ls

    -A, --almost-all
    do not list implied . and ..

  3. #3
    Membre habitué Avatar de nicolas66
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    326
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 326
    Points : 146
    Points
    146
    Par défaut
    J'ai déjà regardé la page de man et l'option "-A" ne correspond pas à ce que je souhaite ..
    Athlon 6000+ Dual Core & GeForce 8600 GT -- Ubuntu Gutsy

  4. #4
    Invité
    Invité(e)
    Par défaut
    Si tu veux uniquement les sous-répertoires séparés par un espace et en excluant . et .. :

    voici la série de commandes à taper:

    $ ls -l | grep ^d | tr -s ' ' ':'| cut -d: -f10| tr '\n' ' '
    Test:
    $ ls -a
    . .. fic1.txt fic3.txt .ficCache.txt rep1 rep2 rep3
    $ var=`ls -l | grep ^d | tr -s ' ' ':'| cut -d: -f10| tr '\n' ' '`
    $ echo $var
    rep1 rep2 rep3

  5. #5
    Membre habitué Avatar de nicolas66
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    326
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 326
    Points : 146
    Points
    146
    Par défaut
    Le seul problème c'est que la série de commandes que tu m'as donné ne fonctionne pas avec des noms de répertoire qui contiennent des espaces.
    Athlon 6000+ Dual Core & GeForce 8600 GT -- Ubuntu Gutsy

  6. #6
    Invité
    Invité(e)
    Par défaut
    Pour les rep avec espaces:

    $ ls -l| grep ^d | tr -s ' ' ' '|cut -d' ' -f9-
    rep1
    rep10
    rep11
    rep12
    rep2
    rep3
    rep4
    rep5
    rep6
    rep7
    rep8
    rep9
    rep avec espace
    rep avec espace2
    remplacement des sauts de ligne par des espaces:


    $ ls -l| grep ^d | tr -s ' ' ' '|cut -d' ' -f9- | tr -s '\n' ' '
    rep1 rep10 rep11 rep12 rep2 rep3 rep4 rep5 rep6 rep7 rep8 rep9 rep avec espace rep avec espace2

  7. #7
    Membre éprouvé
    Avatar de Pouic
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 669
    Points : 977
    Points
    977
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ find . -type d -printf "%f "
    Le -printf, c'est juste pour avoir seulement le nom du repertoire (et pas le chemin complet depuis le répertoire courant). Après, tu arranges ça à ta sauce (man find)
    Software becomes slower faster than hardware becomes faster
    [size=1]
    http://xrenault.developpez.com

  8. #8
    Membre habitué Avatar de nicolas66
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    326
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 326
    Points : 146
    Points
    146
    Par défaut
    Ayant testé à la racine de mon compte, je me suis aperçu que la commande find était récursive par défaut. Dans mon cas, je dois limiter la profondeur dans les répertoires à 1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    find . -type d -printf "%f " -maxdepth 1
    Merci à tous pour votre aide


    Nico.
    Athlon 6000+ Dual Core & GeForce 8600 GT -- Ubuntu Gutsy

  9. #9
    Membre habitué Avatar de nicolas66
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    326
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 326
    Points : 146
    Points
    146
    Par défaut
    Heu juste une dernière question : comment fait-on pour éviter d'afficher en premier le répertoire ou l'on effectue la recherche ?
    Athlon 6000+ Dual Core & GeForce 8600 GT -- Ubuntu Gutsy

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

Discussions similaires

  1. Cherche une commande shell/bash pour traitement sur fichier
    Par breizho35 dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 26/02/2015, 11h18
  2. bouton pour lancer une commande shell sur le web
    Par hamdii dans le forum Langage
    Réponses: 3
    Dernier message: 08/04/2012, 12h56
  3. [Système]Execution d'une commande shell
    Par n8ken dans le forum API standards et tierces
    Réponses: 24
    Dernier message: 29/03/2007, 04h36
  4. [LG]plantage sur une commande basique !
    Par Jeff on the web dans le forum Langage
    Réponses: 5
    Dernier message: 13/01/2004, 19h07

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