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

Unix Discussion :

nom de fichier plus court


Sujet :

Unix

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 12
    Points : 11
    Points
    11
    Par défaut nom de fichier plus court
    Bonjour,

    je débute en Unix et je rencontre le problème suivant:

    je suis dans une boucle FOR et je voudrais obtenir une variable filecourt qui soit les 4 premiers caractères de filelong + son extension (ici ".dat")

    le script est comme ceci:

    for filelong in `ls ${ALU_STC}/*.dat`
    do
    ...
    done


    où ${ALU_STC}/ est le chemin de mes fichiers .dat

    exemple:
    ALU_STC=/data
    filelong a alors la valeur /data/titi_123456789.dat
    et je voudrai obtenir: titi.dat

    chaque fois que j'ai essayé de faire une action, il travaille sur les donnéesdu fichier mais pas ur le nom du fichier.

    Merci pour votre aide

  2. #2
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    tu y était presque oui

    pour tout dans liste
    faire
    mv chemin/fichierlong chemin/$( echo $(lister fichierlong couper à 4 ; couper à .+3))
    fin

    L'idée est de faire de la découpe des 3 éléments dans une

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ext=$(echo $filelong | cut -d"." -f2)
    corp=$(echo $filelong | awk -F "/" '{print $NF}' | cut -c1-4)
    mv ${filelong} $(echo ${corp}'.'${ext})
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    XS1:root #mkdir /tmp/test
    XS1:root #for i in 1 2 3 4 5 6 ; do touch /tmp/test/tit${i}123456789.dat ; done
    XS1:root #ls /tmp/test
    tit1123456789.dat  tit2123456789.dat  tit3123456789.dat  tit4123456789.dat  tit5123456789.dat  tit6123456789.dat
    XS1:root #ALU_STC=/tmp/test 
    XS1:root #for filelong in `ls ${ALU_STC}/*.dat`
    > do
    > ext=$(echo $filelong | cut -d"." -f2)
    > corp=$(echo $filelong | awk -F "/" '{print $NF}' | cut -c1-4)
    > mv ${ALU_STC}/${filelong} ${ALU_STC}/$(echo ${corp}'.'${ext})
    > done
    XS1:root #cd /tmp/test
    XS1:root #ls *.dat
    tit1.dat  tit2.dat  tit3.dat  tit4.dat  tit5.dat  tit6.dat

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    parfait,

    j'ai adapté un peu car le nom de fichier était forcément pas titi, mais ça marche très bien.

    Merci

  4. #4
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    ah ?
    tu as pas 1000 fichiers titi toto tatat foo bar et autres onomatopés sur ta machine et dans /tmp en particulier ? ça viendra ....

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

Discussions similaires

  1. [PHP 5.3] Récupèrer le nom du fichier le plus récent dans un dossier
    Par oOBaalberithOo dans le forum Langage
    Réponses: 3
    Dernier message: 25/02/2010, 14h26
  2. Nom de fichier court dans <asp:HyperLinkField>
    Par kaskarot dans le forum ASP.NET
    Réponses: 4
    Dernier message: 09/09/2009, 14h15
  3. Réponses: 4
    Dernier message: 30/12/2008, 11h30
  4. Obtenir le nom du fichier le plus récent dans un dossier.
    Par agentchico dans le forum Windows
    Réponses: 1
    Dernier message: 06/06/2008, 08h10

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