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 :

Extraction d'une chaine de caractère sauf la fin


Sujet :

Shell et commandes GNU

  1. #1
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 107
    Par défaut Extraction d'une chaine de caractère sauf la fin
    Salut !

    Je possède une liste de fichiers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ ls -1 *.txt
    Co-co-all_pose.txt
    Ba-nane-all_pose.txt
    Can-tine-all_pose.txt
    Li-all_pose.txt
    Anan-as-all_pose.txt
    Je souhaiterais retirer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    for fichier in dossier/*.txt; do
       name=$(basename fichier.txt .txt )
     
       name2=  echo ${:(-13)} 
       # ou $(echo ${name:0: -14})
     
    echo $name2
     
    done
    De telle sorte à obtenir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Co-co
    Ba-nane
    Can-tine
    Li
    Anan-as

    J'ai cherché via la fonction substring, mais je ne vois pas comment elle fonctionne
    Je souhaiterais extraire cela par une boucle

    Si quelqu'un avait une idée ?

  2. #2
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 293
    Par défaut
    Bonjour

    Tu as pourtant avancé tous les éléments nécessaires.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $ ls -1
    Anan-as-all_pose.txt
    Ba-nane-all_pose.txt
    Can-tine-all_pose.txt
    Co-co-all_pose.txt
    Li-all_pose.txt
    $ for i in *.txt;do echo ${i%-all_pose.txt}; done
    Anan-as
    Ba-nane
    Can-tine
    Co-co
    Li
    PS: les espaces après le signe = d'affectation sont du plus mauvais effet. Il ne faut pas faire cela.

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut
    un tableau, pas de boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ pat='-all_pose.txt'
    $ fics=( *"$pat" )
    $ fics=( "${fics[@]%$pat}" )
    $ printf '%s\n' "${fics[@]}"
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  4. #4
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 360
    Par défaut
    Au pire basename est suffisant, car contrairement à ce que l'on a tendance à croire, celui-ci ne fonctionne pas sur des fichiers existants mais juste sur des noms de fichiers:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ basename foobar-bar-foo-all_pose.txt -all_pose.txt
    foobar-bar-foo

  5. #5
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 107
    Par défaut
    Merci beaucoup pour vos idées , prendre pour extensions, très bonnes astuces

  6. #6
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 107
    Par défaut
    ok pour les espaces

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 05/04/2009, 10h40
  2. Réponses: 2
    Dernier message: 05/03/2009, 16h06
  3. Extraction d'une chaine de caractère
    Par ozzy75 dans le forum Développement
    Réponses: 0
    Dernier message: 26/10/2008, 11h23
  4. [RegEx] Tronquer une chaine de caractère sauf si c'est une URL.
    Par psychoBob dans le forum Langage
    Réponses: 16
    Dernier message: 03/06/2006, 12h01
  5. Extraction d'une chaine de caractères
    Par megane dans le forum Langage
    Réponses: 2
    Dernier message: 05/01/2004, 14h52

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