Récupérer les 3 premiers caractères du nom du

szcz2007 -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Il faut que j'écrive un script en SHELL.
comment je peux faire pour récupérer les 3 premiers caractères du nom du fichier que je dois lire.
Configuration: Windows XP
Internet Explorer 6.0

8 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,
    $ var="bonjour"
    $ echo ${var:0:3}
    bon
    
    ;-))
    1
  2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    attention où tu mets les accolades

    echo {$var:0:1} - incorrect, c'est ${}
    echo ${var:0:1} 
    --
    lami20j
    0
  3. szcz2007 Messages postés 3 Date d'inscription   Statut Membre
     
    Au secours !!
    dans le script j'ai :
    var="papa"
    echo ${var:0:1}

    résultat
    ${var:0:1}: bad substitution
    0
  4. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Re-

    Essaye alors :
    expr "$var" : '\(...\)'
    Tu veux récupérer 1 ou 3 caractères ?
    Affiches-nous ton script en entier s'il te plaît, merci.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. szcz2007 Messages postés 3 Date d'inscription   Statut Membre
     
    Voici mon script, je dois afficher les 3 caractères mais j'ai compris le principe...par contre j'ai pas tout compris pour la ligne de commande expr "$var" : '\(...\)' ==> ?
    J'ai eu 30 mn de formation sur le shell...alors je suis un peu perdu...
    merci pour votre aide...

    if [ $nbfichier -ne 0 ]
    then
    for Fic in `ls R*`
    do
    echo "fichier trouvé ==>$Fic"
    var="papa"
    echo ${var:0:3}
    exit 0
    done
    else
    echo "Fichier $Fic NON PRESENT"
    echo "nb fichier : $nbfichier"
    exit 16
    fi
    0
  7. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    mettre
    #!/bin/bash
    en première ligne
    0
  8. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    [tmpfs]$ ls -1
    
    Robert.txt
    Roger.txt
    Romain.txt
    rose.txt
    Roxane.txt
    roxy.txt
    
    [tmpfs]$ for fich in $(ls R*);do echo "${fich} => ${fich:0:3}";done
    
    Robert.txt => Rob
    Roger.txt => Rog
    Romain.txt => Rom
    Roxane.txt => Rox
    
    [tmpfs]$
    ;-))
    0
  9. szcz2007 Messages postés 3 Date d'inscription   Statut Membre
     
    j'ai un peu de mal :
    j'ai du louper un truc
    j'ai écrit dans mon script :
    var="papa"
    echo {$var:0:1}

    résultat = {papa:0:1}
    -1