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 :

extraire le chemin d'un fichier mais sans le fichier


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 40
    Par défaut extraire le chemin d'un fichier mais sans le fichier
    bonjour à tous, je cherche depuis 1H à extraire le chemin d'un fichier mais sans le nom du fichier ; pour etre plus claire
    si j'ai $chemin="../SE/aa"
    j'aurai $chemin2="../SE"
    et cela pour tester si ce répertoire existe vraiment
    j'essaye des manips avec cut et awk mais sans succès , y'aurai-t-il un moyen pour faire cela ???

  2. #2
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Par défaut
    Bonjour.

    Ceci pourrait convenir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    #!/bin/bash
     
    chemin="../SE/aa"
     
    # nombre d'élément
    SIZE=$(echo $chemin | awk 'BEGIN{FS="/"} {print NF}')
     
    chemin2=$(echo $chemin | awk 'BEGIN{FS="/"} {print $1}')
     
    for (( i=2 ; i<$SIZE ; i=$i+1 ))
    do
          elem=$(echo $chemin | awk 'BEGIN{FS="/"} {print $('$i')}')
          chemin2=$chemin2/$elem
    done
     
    echo $chemin2
    Cordialement,
    Idriss

  3. #3
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 40
    Par défaut
    le code que vous me proposer me donne ce qui suit le dernier "/" c'est à dire
    $chemin1="../SE/aa"
    $chemin2="aa"

    et ce que je voudrai c'est $chemin2="../SE"
    merci bien !!

  4. #4
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Par défaut
    Oui j'ai lu trop vite et compris le problème à l'envers.
    J'ai édité mon premier message avec un script qui fonctionne mais je pense qu'il y a surement des solutions plus simples.

    Cordialement,
    Idriss

  5. #5
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 40
    Par défaut
    merciii bien , c'est ce que je voulais , merci encore !!!!!

  6. #6
    Membre expérimenté
    Homme Profil pro
    Gérant infopsylon
    Inscrit en
    Juin 2010
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Gérant infopsylon
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2010
    Messages : 215
    Par défaut
    Bonjour,

    Je pense qu'il y a plus simple, la commande dirname fait ca.

    Sinon, tu peux aussi faire ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    chemin="../SE/AA"
    chemin2=${chemin%/*}
    Lilian.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/01/2015, 14h14
  2. Partager un fichier mais sans pouvoir le copier
    Par mouloudéen dans le forum Windows XP
    Réponses: 3
    Dernier message: 31/12/2007, 14h04
  3. Réponses: 16
    Dernier message: 10/07/2007, 09h12
  4. Réponses: 1
    Dernier message: 28/09/2006, 13h09
  5. Réponses: 4
    Dernier message: 28/08/2006, 14h47

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