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 02/01/2007, 19h38   #1
Invité de passage
 
Inscription : janvier 2007
Messages : 3
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 3
Points : 0
Points : 0
Par défaut Aide pour script bash

bonjour, j'ai deux problemes pour finir un projet de script :

le premier : j'aimeré pouvoir garder que la premiere partie de cette ligne
Code :
d4fb6409a92d89094712e730af17ed72  Audi_RS4_293_1440x900.jpg
qui vous l'aurez certainement reconnue fait suite a la commande md5sum. Je connais la commande cut -d" " -f1 mais, il ne semble pa etre possible d'avoir un espace en argument.

le deuxieme : supprimer un répertoire vide.
comment determiner un repertoire vide ? par sa taille ? son nombre d'élement?
pour celle la je n'ai aucune piste serieuse...

merci pour votre aide, car je ne suis qu'un pauvre étudiant qui cherche comment marche le monde linux
cmoiki est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2007, 20h02   #2
Membre Expert
 
Avatar de narmataru
 
Inscription : décembre 2002
Messages : 1 423
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : décembre 2002
Messages : 1 423
Points : 1 491
Points : 1 491
Voici la réponse à tes 2 questions en même temps :

Citation:
narma@linimi:~$ cd /tmp/
narma@linimi:/tmp$ mkdir toto # je crée un répertoire vide
narma@linimi:/tmp$ n=$(ls -1 /tmp/toto/ | wc | sed -e "s/ \+/ /g"|cut -d\ -f 2) # je vérifie si il est vide (pour voirle fonctionne essaye cahe bout de la commande)
narma@linimi:/tmp$ if [ "$n" -eq 0 ]; then echo "vide"; fi # si la commande précédente renvoie 0 alors le répertoire est vide
vide
narma@linimi:/tmp$ cp fichier.txt toto/
narma@linimi:/tmp$ n=$(ls -1 /tmp/toto/ | wc | sed -e "s/ \+/ /g"|cut -d\ -f 2)
narma@linimi:/tmp$ if [ "$n" -eq 0 ]; then echo "vide"; fi
narma@linimi:/tmp$
Pour définir l'espace comme séparateur de cut il faut l'échapper avec \
Citation:
cut -d\ -f1
__________________
Reportage d'Arte sur Linux
narmataru est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2007, 20h53   #3
Invité de passage
 
Inscription : janvier 2007
Messages : 3
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 3
Points : 0
Points : 0
merci beaucoup ca marche bien sauf que il ne faut pas mettre
cut -d\ mais cut -d' '
cmoiki est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2007, 15h26   #4
Invité de passage
 
Inscription : janvier 2007
Messages : 3
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 3
Points : 0
Points : 0
j'aurais une autre question :
comment faire pour couper le dernier morceau situé aprés le dernier "/" par exemple :

/home/temp/arbo/fichAmodifier/j
ou
/home/temp/arbo/fichAmodifier/toto/k

sachant que la commande doit pouvoir couper seulement la fin donc j ou k et me donner le reste du chemin
merci
cmoiki est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2007, 17h00   #5
Membre Expert
 
Avatar de becket
 
Frédéric Brugmans
Informaticien multitâche
Inscription : février 2005
Messages : 661
Détails du profil
Informations personnelles :
Nom : Frédéric Brugmans

Informations professionnelles :
Activité : Informaticien multitâche

Informations forums :
Inscription : février 2005
Messages : 661
Points : 1 196
Points : 1 196
avec basename ( pour le nom ) et avec dirname ( pour le chemin complet )
becket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2007, 23h50   #6
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
Citation:
Envoyé par narmataru
narma@linimi:~$ cd /tmp/
narma@linimi:/tmp$ mkdir toto # je crée un répertoire vide
narma@linimi:/tmp$ n=$(ls -1 /tmp/toto/ | wc | sed -e "s/ \+/ /g"|cut -d\ -f 2) # je vérifie si il est vide (pour voirle fonctionne essaye cahe bout de la commande)
narma@linimi:/tmp$ if [ "$n" -eq 0 ]; then echo "vide"; fi # si la commande précédente renvoie 0 alors le répertoire est vide
Hem. C'est bien compliqué
Il y a la fonction rmdir qui ne supprime que les repertoires vides, et qui renvoie une erreur ( $? == 1 ) si un des répertoires cibles ne l'est pas...
Donc un truc du genre
Code :
1
2
rmdir le_repertoire
if [ $? -eq 1 ]; then  echo erreur; fi
fait l'affaire
__________________
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
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h11.


 
 
 
 
Partenaires

Hébergement Web