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 POSIX Discussion :

Comment extraire une partie du nom d'un fichier


Sujet :

Shell et commandes POSIX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Octobre 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2007
    Messages : 99
    Par défaut Comment extraire une partie du nom d'un fichier
    Bonjour,

    Novice en la matière, je souhaiterai savoir comment extraire une partie du nom d'un fichier passer en paramètre dans un programme Shell/Unix

    Par exemple :
    Nom du fichier : PLM39805_201209.txt (==>Gc_fic_R1)
    Je souhaiterai récupérer "201209"

    Voilà la commande, qui ne marche pas, que j'ai passé dans mon programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo `expr substr $Gc_fic_R1 10 6` | read Gc_Periode_Fic
    Merci pour votre aide

  2. #2
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    toto$ Gc_fic_R1=PLM39805_201209.txt
    toto$ Gc_Periode_Fic=$(echo $Gc_fic_R1 | sed 's/.*_\([0-9]\{6\}\).*/\1/')
    toto$ echo $Gc_Periode_Fic
    201209
    pour détailler :
    sed 's/.*_\([0-9]\{6\}\).*/\1/'

    substituer "tout jusqu'à underscore" suivi de avec bufferisation 6 chiffres exactement suivi de n'importe quoi
    par
    le contenu du buffer

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Octobre 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2007
    Messages : 99
    Par défaut
    Salut,

    Merci ça marche d'enfer

    J'en profite, à l'occasion, pour te faire part de mon post ci dessous (au cas où ?)
    http://www.developpez.net/forums/d12...s/#post6905019

    En tout cas merci,
    A+

  4. #4
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    Si la date est toujours à la même position dans le nom du fichier, il y a aussi cut:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ echo PLM39805_201209.txt | cut -c 10-15
    201209

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 06/03/2008, 15h12
  2. Comment extraire une partie d'URL avec REGEX?
    Par STB_Fk dans le forum Langage
    Réponses: 2
    Dernier message: 24/01/2007, 12h59
  3. Réponses: 7
    Dernier message: 18/07/2006, 14h56
  4. Réponses: 2
    Dernier message: 21/05/2006, 19h31

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