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 :

Travailler sur une liste de fichiers


Sujet :

Shell et commandes GNU

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 107
    Points : 33
    Points
    33
    Par défaut Travailler sur une liste de fichiers
    Bonjour,

    Je possède des fichiers repertorier dans une liste que j'aimerais traiter un à un, dans l'ordre de la liste

    Voici mon code

    liste.txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i in $liste ; do  
            echo "element =" $i # afficher le contenu du fichier, mais cela ne marche pas :(  
    done
    Je sais que cette structure de boucle marche pour des fichiers i dans un dossier, mais j'aimerais pouvoir faire un affichage des fichiers dans l'ordre de la liste.

    Cordialement,

  2. #2
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 099
    Points : 4 444
    Points
    4 444
    Par défaut
    bonjour

    je n'ai pas bien compris ton problème / ton code
    - liste.txt n'est pas ce code mais un fichier texte contenant des noms de fichiers ? un par ligne ?
    - aucune idée de ce qu'est $liste pour toi. il manque donc du code avant ...


    Ton code serait du type ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Lire fichier.txt ligne à ligne
     
        echo "fichier:" $ligne
        echo "afficher ce fichier"
        cat $ligne
     
    fin Lire
    $moi= ( !== ) ? : ;

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 107
    Points : 33
    Points
    33
    Par défaut
    oui voila, liste contient, une liste de fichier (un par ligne) répertorié par ordre alphabétique car dans un dossier souvent les fichiers sont présents par date de création. Mais je voudrais les traiter par ordre alphabétique.

    Du coup j'ai créer une liste de fichier. et je souhaiterai appeler ces fichiers en utilisant une boucle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for element in liste; do
     
    or element est un fichier et liste une liste de fichier et non un repertoire tu vois

  4. #4
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 099
    Points : 4 444
    Points
    4 444
    Par défaut
    Une façon de lire un fichier texte ligne par ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while read -r ligne
    do
        echo "$ligne"
    done < "fichier.txt"
    par contre, il serait plus intéressant de se passer de ce fichier et de plutôt trier les fichiers du répertoire dans le script bash
    $moi= ( !== ) ? : ;

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 107
    Points : 33
    Points
    33
    Par défaut
    Je t'avoue que je suis stagiaire, mon responsable ne veut rien entendre, il est assis sur ses idées.

  6. #6
    Expert éminent
    Avatar de Pyramidev
    Homme Profil pro
    Développeur
    Inscrit en
    Avril 2016
    Messages
    1 469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Avril 2016
    Messages : 1 469
    Points : 6 102
    Points
    6 102
    Par défaut
    Bonjour,

    Bash est un langage dans lequel il est très difficile d'écrire du code correct, surtout quand on débute, car il y a beaucoup de pièges. Dans la plupart des cas où je vois des gens écrire des scripts Bash, Python aurait été un langage plus adapté.

    Néanmoins, voici un exemple de code qui répond peut-être au besoin, à adapter selon ce que l'on veut vraiment :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    files=()
    while read -r -d ''; do
        files+=("$REPLY")
    done < <(find . -maxdepth 1 -type f -print0 | sort -z)
     
    for f in "${files[@]}"; do
        echo "File: $f"
    done
    Ce code lit les fichiers du dossier courant, les met dans l'ordre alphabétique et les range dans un tableau files. Ensuite, il parcourt chaque élément du tableau dans l'ordre. Cela marche même avec des fichiers dont le nom contient des espaces ou des retours à la ligne.

    Détails techniques :

    • files=() crée un tableau vide.
    • find . -maxdepth 1 -type f -print0 parcourt le dossier courant (.), sans aller dans les sous-dossiers (via -maxdepth 1), ne garde que les fichiers (via -type f) et utilise comme séparateur le caractère nul (via -print0).
    • sort -z trie en utilisant comme séparateur le caractère nul (via -z).
    • while [...] done < <(commande) redirige la sortie de la commande vers la boucle while.
    • while read -r -d ''; do [...] done itère sur la lecture de l'entrée en utilisant comme séparateur le caractère nul (via -d ''), sans traiter les antislashs de manière spéciale (via -r) et met le résultat dans REPLY à chaque itération.
    • files+=("$REPLY") ajoute un élément à la fin du tableau.
    • "${files[@]}" est une succession de chaînes, chaque chaîne correspondant à un élément du tableau files, dans l'ordre.

  7. #7
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    files=()
    while read -r -d ''; do
        files+=("$REPLY")
    done < <(find . -maxdepth 1 -type f -print0 | sort -z)
    ou alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mapfile -d '' -t ar < <(find . -maxdepth 1 -type f -print0 | sort -z)
    en effet, plein de pièges pour les débutants.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  8. #8
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 684
    Points : 30 973
    Points
    30 973
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par judkil Voir le message
    Je possède des fichiers repertorier dans une liste que j'aimerais traiter un à un, dans l'ordre de la liste

    Voici mon code

    liste.txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i in $liste ; do  
    	echo "element =" $i # afficher le contenu du fichier, mais cela ne marche pas :(  
    done
    Je sais que cette structure de boucle marche pour des fichiers i dans un dossier, mais j'aimerais pouvoir faire un affichage des fichiers dans l'ordre de la liste.
    Je ne vois pas le souci... excepté pour un détail: remplace for i in $liste par for i in "$liste". Ca protège si une des lignes contient un espace dans son nom. D'ailleurs il convient de toujours protéger ses variables de double quotes quand on les traite => donc là aussi remplacer echo "element =" $i par echo "element = $i" (mais ici c'est moins grave car la variable est juste affichée et non pas récupérée par un outil style "for" qui utilise l'espace pour séparer ses éléments).

    Pour le reste je ne vois pas de souci
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    liste="$(ls -l)"
    for i in "$liste"; do  
    	echo "element = [$i]"	# chez-moi ça marche
    done
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  9. #9
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 107
    Points : 33
    Points
    33
    Par défaut
    Merci beaucoup, je vais tester tout ça

  10. #10
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    Citation Envoyé par Sve@r
    remplace for i in $liste par for i in "$liste"
    tu l'as pourtant dit sur une autre discussion : "$i" contiendra la variable tout entière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $ lst="ab
    c
    d e"
    $ for i in "$lst"; do echo ">$i<"; done
    >ab
    c
    d e<
    $
    Citation Envoyé par Sve@r
    Pour le reste je ne vois pas de souci
    vraiment ?!
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  11. #11
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 684
    Points : 30 973
    Points
    30 973
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    tu l'as pourtant dit sur une autre discussion : "$i" contiendra la variable tout entière
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $ lst="ab
    c
    d e"
    $ for i in "$lst"; do echo ">$i<"; done
    >ab
    c
    d e<
    $
    Citation Envoyé par Sve@r Voir le message
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    liste="$(ls -l)"
    for i in "$liste"; do  
    	echo "element = [$i]"	# chez-moi ça marche
    done
    Mince, effectivement désolé, mon exemple ne fonctionne pas (ça doit être mes yeux). Effectivement je n'ai qu'une grosse ligne. Je ne sais pas pourquoi j'étais persuadé de voir les lignes individuellement (dure journée probablement).

    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #!/bin/bash
    liste="$(ls -l)"
    while read i; do
    	echo "element = [$i]"
    done <<< "$liste"
    Voilà lui il marche. Et le "ls -l" dans le script ben... déjà c'était juste un exemple (j'ai mis "ls" comme j'aurais pu mettre n'importe quelle autre commande) mais peut-on faire autrement pour traiter la lister des fichiers avec leurs attributs (je veux dire "autrement sans se compliquer la vie à récupérer manuellement les droits et dates et tailles") ?
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  12. #12
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    find avec son option -printf, c'est compliqué ?
    ou alors, une bête boucle for incluant un stat -c...
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  13. #13
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 684
    Points : 30 973
    Points
    30 973
    Billets dans le blog
    1
    Par défaut
    Ben... commande pour commande je ne vois pas pourquoi find serait préférable à ls (c'est un peu similaire au fait d'appeler awk quand cut suffit). Quand à stat -c (c'est à elle que je pensais quand j'ai parlé de "complications manuelles") cela veut dire qu'au lieu de tout récupérer d'un coup, on va appeler n fois une commande pour récupérer les mêmes infos une à une?
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  14. #14
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    find* ou for f in ./*; do stat -c... "$f"; done, ça dépend de ce qu'il y a à faire.

    --
    * va récupérer avec ls !
    vous avez tous essayé, toi aussi. J'attends encore une solution.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  15. #15
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 107
    Points : 33
    Points
    33
    Par défaut
    Si c'est pas indiscret vous avez appris le code dans quelle formation ??

  16. #16
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 684
    Points : 30 973
    Points
    30 973
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    avec ls !
    vous avez tous essayé, toi aussi. J'attends encore une solution.
    Ah c'est vrai, j'oubliais tes dossiers maudits...

    Citation Envoyé par judkil Voir le message
    Si c'est pas indiscret vous avez appris le code dans quelle formation ??
    Personnellement j'ai tout appris tout seul. Tutoriels, exemples, fait mes propres essais avec les echecs qui vont avec. Parfois je faisais aussi chier mes collègues à leur poser un milliard de questions etc.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  17. #17
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 273
    Points : 12 708
    Points
    12 708
    Par défaut
    un petit test avec ls et des fichiers avec des espaces et retour à la ligne (car moi non plus je n'approuve pas ls dans les scripts) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $ touch 'foo et
    bar'
    $ touch 'titi et
    toto'
    $ xx="$(ls --quoting-style=shell-escape-always -l)"
    $ while read -r i; do printf "%s\n" "[$i]" ; done <<< "$xx"
    [total 0]
    [-rw-r--r-- 1 disedorgue disedorgue 0 Jul 28 10:28 'foo et'$'\n''bar']
    [-rw-r--r-- 1 disedorgue disedorgue 0 Jul 28 10:28 'titi et'$'\n''toto']
    Cordialement.

  18. #18
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ xx="$(ls --quoting-style=shell-escape-always)"
    $ while read f; do test -f "$f" && echo "$f OK"; done <<< "$xx"
    $
    pourtant , il y a bien des fichiers dans le répertoire courant.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  19. #19
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 684
    Points : 30 973
    Points
    30 973
    Billets dans le blog
    1
    Par défaut
    N_Bah, tu te souviens de ce post ?
    Disedorgue t'a eu

    Donc recréons tes fichiers à l'identique (j'avais gardé une commande nommée "n_bah.sh" exprès pour ça )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    touch 'mon'$'\n''fait'$'\n''chier'
    touch 'monF'$'\n''ait'$'\t''Chier'
    Et maintenant, son code: while read -r i; do echo "[$i]" ; done < <(ls --quoting-style=shell-escape-always).

    Et au résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ['mon'$'\n''fait'$'\n''chier']
    ['monF'$'\n''ait'$'\t''Chier']


    Citation Envoyé par disedorgue Voir le message
    (car moi non plus je n'approuve pas ls dans les scripts)
    A priori il ne devrait y avoir aucun problème. Ben oui, pourquoi faire du "cut" ou du "find" et pas du "ls" ? Toute commande se vaut. A partir de là, entre appeler "ls" qui pèse 139k et "find" qui en pèse 313 autant choisir la plus légere

    [edit] (j'avais pas vu ta réponse)
    Citation Envoyé par N_BaH Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ xx="$(ls --quoting-style=shell-escape-always)"
    $ while read f; do test -f "$f" && echo "$f OK"; done <<< "$xx"
    $
    pourtant , il y a bien des fichiers dans le répertoire courant.
    Exact Je viens de tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #!/bin/bash
    liste="$(ls --quoting-style=shell-escape-always)"
    while read i; do
    	test -e "$i" && echo "element = [$i] ok" || echo "element [$i] bad"
    done <<< "$liste"
    Et j'ai "bad" de partout

    Ok, je vais être beau joueur, j'efface pas mon post, je le laisse pour montrer mon échec. On ne t'a pas eu.

    Je laisse juste mon code permettant de tester find/ls...
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #!/bin/bash
    echo
    echo "Test find"
    find ./ -maxdepth 1 -type f -name 'mon*' -print0 | while IFS='' read -d '' fic; do
    	test -e "$fic" && res="ok" || res="bad"
    	echo "with find = [$fic] $res"
    done
     
    echo
    echo "Test ls"
    ls --quoting-style=shell-escape-always | while read fic; do
    	test -e "$fic" && res="ok" || res="bad"
    	echo "with ls = [$fic] $res"
    done

    ... puis je vais aller me noyer dans le forum C
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  20. #20
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 273
    Points : 12 708
    Points
    12 708
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ xx="$(ls --quoting-style=shell-escape-always)"
    $ while read -r i; do eval " test -f $i && printf '%s\n' [$i] " ; done <<< "$xx"
    [foo et
    bar]
    [titi et
    toto]
    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Boucler un code sur une liste de fichiers
    Par Andromedae dans le forum Général Python
    Réponses: 6
    Dernier message: 05/03/2016, 09h35
  2. [Débutant] Travailler sur une liste d'images
    Par medsyorick dans le forum Images
    Réponses: 1
    Dernier message: 17/07/2013, 17h13
  3. transfert SFTP - boucle sur une liste de fichiers
    Par Nick56 dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 18/12/2008, 09h25
  4. liens sur une liste de fichiers
    Par marlet dans le forum Linux
    Réponses: 7
    Dernier message: 25/09/2008, 11h11
  5. [Procédure stockée] Comment travailler sur une liste de ...
    Par WwiloO dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 13/02/2006, 11h22

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