Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/07/2006, 19h43   #1
Membre habitué
 
Avatar de nicolas66
 
Étudiant
Inscription : février 2004
Messages : 326
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 326
Points : 107
Points : 107
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 :
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
nicolas66 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2006, 00h01   #2
Expert Confirmé Sénior
 
Homme Laurent Willems
Expert Stop/Start
Inscription : septembre 2002
Messages : 2 551
Détails du profil
Informations personnelles :
Nom : Homme Laurent Willems
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Expert Stop/Start

Informations forums :
Inscription : septembre 2002
Messages : 2 551
Points : 4 271
Points : 4 271
Man ls

Citation:
-A, --almost-all
do not list implied . and ..
Mygale1978 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2006, 15h20   #3
Membre habitué
 
Avatar de nicolas66
 
Étudiant
Inscription : février 2004
Messages : 326
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 326
Points : 107
Points : 107
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
nicolas66 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2006, 16h23   #4
Expert Confirmé Sénior
 
Homme Laurent Willems
Expert Stop/Start
Inscription : septembre 2002
Messages : 2 551
Détails du profil
Informations personnelles :
Nom : Homme Laurent Willems
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Expert Stop/Start

Informations forums :
Inscription : septembre 2002
Messages : 2 551
Points : 4 271
Points : 4 271
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:

Citation:
$ ls -l | grep ^d | tr -s ' ' ':'| cut -d: -f10| tr '\n' ' '
Test:
Citation:
$ ls -a
. .. fic1.txt fic3.txt .ficCache.txt rep1 rep2 rep3
Citation:
$ var=`ls -l | grep ^d | tr -s ' ' ':'| cut -d: -f10| tr '\n' ' '`
$ echo $var
rep1 rep2 rep3
Mygale1978 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2006, 17h16   #5
Membre habitué
 
Avatar de nicolas66
 
Étudiant
Inscription : février 2004
Messages : 326
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 326
Points : 107
Points : 107
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
nicolas66 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2006, 18h01   #6
Expert Confirmé Sénior
 
Homme Laurent Willems
Expert Stop/Start
Inscription : septembre 2002
Messages : 2 551
Détails du profil
Informations personnelles :
Nom : Homme Laurent Willems
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Expert Stop/Start

Informations forums :
Inscription : septembre 2002
Messages : 2 551
Points : 4 271
Points : 4 271
Pour les rep avec espaces:

Citation:
$ 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:

Citation:

$ 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
Mygale1978 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2006, 00h38   #7
Membre émérite
 
Avatar de Pouic
 
Inscription : octobre 2004
Messages : 668
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2004
Messages : 668
Points : 904
Points : 904
Code :
$ 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

http://xrenault.developpez.com
API C standard (C ANSI )
Pouic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2006, 14h26   #8
Membre habitué
 
Avatar de nicolas66
 
Étudiant
Inscription : février 2004
Messages : 326
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 326
Points : 107
Points : 107
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 :
1
2
 
find . -type d -printf "%f " -maxdepth 1
Merci à tous pour votre aide


Nico.
__________________
Athlon 6000+ Dual Core & GeForce 8600 GT -- Ubuntu Gutsy
nicolas66 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2006, 21h47   #9
Membre habitué
 
Avatar de nicolas66
 
Étudiant
Inscription : février 2004
Messages : 326
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 326
Points : 107
Points : 107
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
nicolas66 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h26.


 
 
 
 
Partenaires

Hébergement Web