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 nom fichier


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 48
    Par défaut Extraire nom fichier
    Bonjour,

    je suis débutant en langage bash, veuillez m'excuser d'avance si la question a déjà été posée mais je n'ai pas réussi à trouver de solution à mon problème.
    je souhaiterais récupérer le nom de mon fichier (en rouge) depuis son nom complet: /home/documents/.../fichier.txt

    je souhaite ensuite pouvoir réutiliser cette variable dans mon code pour renommer un répertoire sans avoir à passer par la commande "mv"

    mon code commence ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #!/bin/bash
     
    repertoire=/home/documents/.../monrepertoire
     
    for fichierfasta in $repertoire/*
    do
    ## récupérer le nom de mon fichier (en rouge)
    je suis sur que la question posée est très simple mais je n'arrive absolument pas à récupérer cette information...
    encore désolé si la question a déjà été posée

    Bonne journée

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 134
    Par défaut
    La commande basename répond à ton besoin.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 48
    Par défaut
    d'accord,

    mais lorsque j'utilise la commande basename cette dernière me renvoie le nom du répertoire et non pas le nom du fichier que je souhaite récupérer.

    N'est-il pas possible de récupérer le nom de mon fichier depuis la variable "fichierfasta" ?

    au départ je voulais récupérer l'adresse de mon répertoire comme chaîne de caractère pour ensuite récupérer uniquement le nom du fichier mais je n'y arrive pas...

    edit: j'ai finalement trouvé la solution merci

    mais j'ai maintenant une 2ème question (désolé)

    je n'arrive pas avec la commande cut à couper le nom de mon fichier à partir du "." en gros je souhaite retirer l'extension...

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 134
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    basename "${fichierfasta}" | cut -d '.' -sf1
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 653
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for f in $repertoire/*
    do
       nomFichier="$f#*/}"
       # etc...
    done
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 48
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    basename "${fichierfasta}" | cut -d '.' -sf1
    ok ça marche ça me donne le résultat que je veux mais si je fais ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    name= basename "${fichierfasta}" | cut -d '.' -sf1 
    echo $name
    la console ne me renvoie rien...

    - N_BaH

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    for f in $repertoire/*
    do
       nomFichier="$f#*/}"
       # etc...
     
    echo $nomFichier
     
    done
    lorsque je fais ça le terminal me renvoie


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

Discussions similaires

  1. Procédure stockée - extraire nom de fichier et extension
    Par Tony36 dans le forum Développement
    Réponses: 7
    Dernier message: 25/06/2009, 23h17
  2. Concatener la date au du nom fichier
    Par peppena dans le forum Linux
    Réponses: 5
    Dernier message: 09/02/2009, 12h53
  3. recuperer, extraire nom de fichier
    Par froggyaz dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/01/2009, 16h35
  4. Extraire nom de fichier du chemin
    Par kalou26 dans le forum C++Builder
    Réponses: 5
    Dernier message: 22/06/2006, 14h23
  5. extraire nom fichier (opendialog)
    Par jmjmjm dans le forum Delphi
    Réponses: 3
    Dernier message: 25/05/2006, 17h52

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