[Shell] manipulation de chaine

Résolu
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. Modérateur
    Salut,
    [tmpfs]$ var="home/to/titi.exe"
    [tmpfs]$ echo ${var##*/}
    titi.exe
    [tmpfs]$
    ;-))
    0
    1. 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
    2. Modérateur
      @JOBiJOBa2
      man bash -P 'less -p "^   Remplacement des paramètres"'
      0
    3. @jipicyMerci
      0
  2. Quel langage?
    0
    1. 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. Non, c'est la meilleure soluce
    0
    1. Modérateur
      echo ${var//*\//}
      0
      1. Pour echo ${var//*\//} :

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

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

        ^^
        0
    2. Modérateur
      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. /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
      2. Modérateur
        @JOBiJOBa2en fait le test est fait sur bash et pas sur ksh ;-)
        0
      3. @lami20jOkey merci désolé de ne pas avoir précisé mais echo ${var##*/} marche très bien en ksh.
        0
    3. Modérateur
      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