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

Shell et commandes GNU Discussion :

find et les espaces avec un tableau


Sujet :

Shell et commandes GNU

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 101
    Points : 56
    Points
    56
    Par défaut find et les espaces avec un tableau
    bonjour

    j'utiliser find pour referencer un tableau, dans le dossier ou j'effectue la recherche j'ai 3 fichiers.txt, mais pour chaque espace dans le nom de fichier j'ai 1 element de tableau supplementaire
    voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	cheminnamefileS=($(find /home/nc/flv/testtxt -type f -name "*.txt"))
    	nb_elementfile=${#cheminnamefileS[*]}
    	for ((var=0;var<$nb_elementfile;var++)); do echo "$var - ${cheminnamefileS[var]}"; done
    le resultat de la recherche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    0 - /home/nc/flv/testflv/testabc
    1 - (copie).txt
    2 - /home/nc/flv/testflv/testabc.txt
    3 - /home/nc/flv/testflv/testabc
    4 - (autre
    5 - copie).txt
    - saisir le chiffre corespondant au fichier a convertir
    et les noms de mes fichiers txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    testabc.txt
    testabc (autre copie).txt
    testabc (copie).txt
    merci d'avance pour votre aide

  2. #2
    Membre averti Avatar de exodev
    Inscrit en
    Septembre 2009
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Septembre 2009
    Messages : 201
    Points : 359
    Points
    359
    Par défaut
    Hello,

    Ce comportement est du à l'IFS (Internal Field Separator) de bash qui parse les données comportant les caractères espace, tab et saut de ligne.

    Dans ton cas ou tu veux peupler ton tableau avec find qui sort un fichier par ligne tu peux modifier l'IFS pour ne prendre en compte que le saut de ligne. Par contre il ne faut pas oublier de le remettre en place si tu n'en as plus besoin car ça peut provoquer des dégâts par la suite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    _IFS=$IFS
    IFS="
    "
     
    cheminnamefileS=($(find /home/nc/flv/testtxt -type f -name "*.txt"))
     
    IFS=$_IFS

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 101
    Points : 56
    Points
    56
    Par défaut
    merci exodev

    ça marche

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

Discussions similaires

  1. [AC-2003] Comment supprimer les espaces avec mid, left, right
    Par edonis dans le forum VBA Access
    Réponses: 3
    Dernier message: 09/10/2011, 19h05
  2. Les espaces avec les expressions reguliers
    Par kodo dans le forum Langage
    Réponses: 6
    Dernier message: 01/05/2007, 23h04
  3. Réponses: 3
    Dernier message: 13/04/2007, 10h04
  4. Problème avec les espaces dans un tableau !
    Par remixtech dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 10/07/2006, 19h30
  5. Gérer les espaces avec SED
    Par byloute dans le forum Linux
    Réponses: 7
    Dernier message: 29/10/2005, 19h07

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