[Shell] manipulation de chaine

Résolu
JOBiJOBa2 Messages postés 93 Statut Membre -  
lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
Bonjour,
j'aurai besoin de vos lumière sur un sujet que je ne métrise pas en shell.
Je récupère une chaine provenant d'une variable et je voudrait isoler une partie de celle-ci.

Explication :

var="home/to/titi.exe"

Résultat attendu :

titi.exe

besoin d'aide
Merci d'avance.
Configuration: Windows XP
Firefox 2.0.0.14

6 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,
    [tmpfs]$ var="home/to/titi.exe"
    [tmpfs]$ echo ${var##*/}
    titi.exe
    [tmpfs]$
    ;-))
    0
    1. JOBiJOBa2 Messages postés 93 Statut Membre 5
       
      Encore un grand merci jipicy. Ca marche comme d'habitude!!

      Juste un petit truc peut tu si tu as le temps m'expliquer le principe de ${var##*/}

      ^^
      0
      1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898 > JOBiJOBa2 Messages postés 93 Statut Membre
         
        man bash -P 'less -p "^   Remplacement des paramètres"'
        0
      2. JOBiJOBa2 Messages postés 93 Statut Membre 5 > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Merci
        0
  2. Forest
     
    Quel langage?
    0
    1. JOBiJOBa2 Messages postés 93 Statut Membre 5
       
      C'était du ksh [Shell] mais le problème est déjà résolu.

      Merci quand même.

      PS : Si tu as une autre solution c'est toujours bon à prendre.
      0
  3. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    echo ${var//*\//}
    0
    1. JOBiJOBa2 Messages postés 93 Statut Membre 5
       
      Pour echo ${var//*\//} :

      test.sh[250]: ${var//*\//}: bad substitution


      Et pour echo ${var##*/} c'est bon ça marche très bien.



      ^^
      0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    allez un peu d'économie ;-)
    root@debian:~# var="home/to/titi.exe"
    root@debian:~# echo $var
    home/to/titi.exe
    root@debian:~# echo ${var/*\/}
    titi.exe

    0
    1. JOBiJOBa2 Messages postés 93 Statut Membre 5
       
      /home/to/ >var="home/to/titi.exe"
      /home/to/ >echo $var
      home/to/titi.exe
      /home/to/ >echo ${var/*\/}
      ksh: ${var/*\/}: bad substitution

      Bizarre

      ^^
      0
      1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571 > JOBiJOBa2 Messages postés 93 Statut Membre
         
        en fait le test est fait sur bash et pas sur ksh ;-)
        0
      2. JOBiJOBa2 Messages postés 93 Statut Membre 5 > lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention  
         
        Okey merci désolé de ne pas avoir précisé mais echo ${var##*/} marche très bien en ksh.
        0
  6. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Chez ça marche avec ksh
    $ echo $SHELL
    /bin/ksh
    $ var="home/to/titi.exe"
    $ echo $var
    home/to/titi.exe
    $ echo ${var/*\/}
    titi.exe
    $

    0