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

Linux Discussion :

[cshell] extraction de sous-chaine


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Août 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Services de proximité

    Informations forums :
    Inscription : Août 2006
    Messages : 61
    Par défaut [cshell] extraction de sous-chaine
    Bonjour à tous,

    J'ai un probleme pour comparer 2 chaines de caracteres entre elles en Cshell.
    mettons que j'ai une variable $type:
    set type="num_XX_ff"
    J'aimerai dans un if, verifier si XX = "12" (ceci est un exemple).
    mon probleme est donc de savoir comment extraire la chaine "XX" de $type.

    Si l'un de vous à une solution, je lui serai trés reconnaissant.
    Bonne journée.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Par défaut
    Oui tu peux utiliser cut pour faire ca.

    Par exemple pour creer une variable $XX qui aura la valeur que tu veux :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    % set type="num_XX_ff"
    % echo $type
    num_XX_ff
    % set XX=`echo $type | cut -d _ -f 2`
    % echo $XX
    XX
    %
    Un autre exemple pour etre sur que tu ne te meprenne pas ($XX vaut XX peut etre confondant) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    % set type="num_56_ff"
    % echo $type
    num_56_ff
    % set XX=`echo $type | cut -d _ -f 2`
    % echo $XX
    56
    Il ne te reste plus qu'a faire ton test sur la valeur de $XX et le tour est joue.

  3. #3
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Août 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Services de proximité

    Informations forums :
    Inscription : Août 2006
    Messages : 61
    Par défaut thanks
    merci andr386.
    c'est encore mieux que ce que je voulais au départ puisque ca découpe ma chaine de caractere avec le caractere "_". Ca me permettra de faire des champs de taille différente.

    Merci à toi.
    ++

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Par défaut
    Je t'en prie, c'etait l'occasion d'installer csh.

    Sinon si tu veux il y a une solution encore plus souple avec bash permettant d'exporter plusieurs elements en une fois avec awk, mais dans mon environement de predilection (bash), mais facilement adaptable a csh j'imagine :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $type=num_56_ff
    $`echo $type |  awk  ' BEGIN{FS="_"} { print "export a="$1" export b="$2" export c="$3 } '`
    $ echo $b
    56
    $ echo $c
    ff
    $ echo $a
    num
    peut-etre qu'en csh il faudrait taper export set ... je ne sais pas.

  5. #5
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Août 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Services de proximité

    Informations forums :
    Inscription : Août 2006
    Messages : 61
    Par défaut
    Re,
    un probleme ne venant jamais seul en Cshell,
    je viens de me rendre compte que la solution que tu m'as proposé soulevait un autre probleme.
    voila mon prog (simplifié bien sur)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    #differents type:
    set type1 = "num_XX_ff"
    set type2 = "num_YY_gg"
    ...
    set liste_type= ( 1 2 ....)
    foreach type ($liste_type)
     
    set XX = `echo $type | cut -d _ -f 2`
     
    end
    malheureusement $type contient "1" ou "2" comment faire pour obtenir la valuer contenu dans type1 (soit "num_XX_ff") à partir de $type.

    si je fait
    set type_courant = `echo "type_$type"
    echo "type_courant" me donne "type1"

    donc derriere j'aurais voulu faire quelquechose du genre:

    set XX = `echo $($type_courant) | cut -d _ -f 2`

    Soit obtenir la valeur de la variable dont le nom est contenu dans type_courant.
    Je ne sais pas si je me fait bien comprendre.

    n'hesitez pas a me poser des questions si vous ne trouvez pas mon message clair.
    Merci pour votre patience

  6. #6
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Août 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Services de proximité

    Informations forums :
    Inscription : Août 2006
    Messages : 61
    Par défaut
    Pas d'idée ou il faut que je crée un nouveau sujet??
    bon app

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Par défaut
    utilise un tableau pour les types ou cree le nom de la variable dynamiquement.

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

Discussions similaires

  1. Extraction de sous-chaine
    Par Aicha78 dans le forum Shell et commandes GNU
    Réponses: 11
    Dernier message: 22/12/2008, 18h42
  2. Extraction de sous chaines
    Par benjiprog dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/07/2007, 10h36
  3. Extraction de sous-chaine
    Par yansg dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 02/05/2007, 22h14
  4. Réponses: 7
    Dernier message: 06/09/2006, 15h10
  5. Extraction de sous-chaine dans une chaine
    Par ma2th dans le forum C
    Réponses: 7
    Dernier message: 07/05/2004, 12h42

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