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 :

Aide pour script bash


Sujet :

Shell et commandes GNU

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 3
    Points : 1
    Points
    1
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre expérimenté
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Points : 1 680
    Points
    1 680
    Par défaut
    Voici la réponse à tes 2 questions en même temps :

    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 \
    cut -d\ -f1

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    merci beaucoup ca marche bien sauf que il ne faut pas mettre
    cut -d\ mais cut -d' '

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    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

  5. #5
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Points : 5 915
    Points
    5 915
    Par défaut
    avec basename ( pour le nom ) et avec dirname ( pour le chemin complet )

  6. #6
    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
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    rmdir le_repertoire
    if [ $? -eq 1 ]; then  echo erreur; fi
    fait l'affaire
    Software becomes slower faster than hardware becomes faster
    [size=1]
    http://xrenault.developpez.com

Discussions similaires

  1. Besoin d'aide pour script bash : amélioration
    Par stabo dans le forum Shell et commandes GNU
    Réponses: 11
    Dernier message: 25/05/2012, 13h31
  2. [mIRC] besoin d'aide pour scripting
    Par emile13 dans le forum IRC / mIRC
    Réponses: 5
    Dernier message: 03/03/2007, 00h05
  3. Aide pour script d'analyse d'évènements
    Par Spear- dans le forum VBScript
    Réponses: 7
    Dernier message: 18/10/2006, 11h49
  4. aide pour script php/mysql
    Par jem27 dans le forum Débuter
    Réponses: 18
    Dernier message: 27/03/2006, 18h08
  5. aides pour script en shell
    Par komatek dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 12/08/2003, 15h36

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