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 :

Vérification et liste fichiers


Sujet :

Shell et commandes GNU

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut
    ça pas faire du joli s'il y a plusieurs fichiers sous $dir, et/ou si $dir contient un espace dans son nom.

    Citation Envoyé par saga974
    En revanche, il me renvoie bien tous les fichiers mais y'a til possibilité de renvoyer le répertoire dans le quel se trouve le fichier ? Ne faut il pas mettre un -type d ? Par exemple le fichier flag appelé fichiertest.flag est dans un répertoire appelé "repertoire". J'aurai souhaité que le chemin complet s'affiche ainsi que toutes les infos de permissions date ect s'affichent je pense qu'un ls -lR serait pas mal mais comment l'imbriquer dans la commande. Ah ah telle est la question !!!
    non.
    adapte l'option -fprintf qui permet l'affichage de nombreuses information concernant les fichiers "remontés" par la commande find.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  2. #22
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 840
    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 840
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    ça pas faire du joli s'il y a plusieurs fichiers sous $dir
    Ah zut, ça j'y avais pas pensé !!!

    Citation Envoyé par N_BaH Voir le message
    et/ou si $dir contient un espace dans son nom.
    Ah là c'est plus facile => [ -e "$dir"/* ]. En revanche effectivement le premier souci reste plus problématique
    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]

  3. #23
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 360
    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 360
    Par défaut
    peut être quelque chose du genre (pas testé) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    shopt -s extglob
    [ -e "$(set -- "$dir/"!(*/) ; echo $1)" ]
    Ici, les doubles quotes à l'intérieur des doubles quotes sont bien prises en compte (au moins en bash)

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ fics=( "$dir"/* )
    $ ((${#fics[*]})) && echo "fichiers présents sous \"$dir/\"" || echo "pas de fichiers sous \"$dir/\""
    enfin, presque, parce que pour être sûr qu'il y a effectivement des fichiers normaux sous $dir/, il faudrait faire une boucle for :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for f in "$dir"/*; do test -f "$f" && { echo "fichier(s) présents sous \"$dir/\""; break;}; done; test -f "$f" || echo "pas de fichiers sous \"$dir/\""
    on pourrait remplir le tableau complètement dans la boucle for, et tester le nombre d'élément si on veut réutiliser le tableau...
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #25
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 324
    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 324
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    En général je préfère mettre en premier les cas d'echec+exit
    Bah, chacun voit le verre à sa façon (à moitié vide ou à moitié plein), moi, tant que la bouteille n'est pas vide
    Mais, en général, je fais 36 tests au début du script (bon paramètres, bon droits, fichiers existes, ...) donc une sructure type "if not xxx exit" est beaucoup plus adéquate.

  6. #26
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 360
    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 360
    Par défaut
    Je ne vois pas où se situe le problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ true || { echo ko ; false ; } && { echo ok ; true; }
    ok
    $ false || { echo ko ; false ; } && { echo ok ; true; }
    ko
    Et rien n'empête de mettre la négation sur le test pour que cela soit le && qui traite le exit.

  7. #27
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 840
    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 840
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    Je ne vois pas où se situe le problème:
    C'est que c'est souvent plus aisé d'écrire
    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
    if souci1; then
    	echo "souci1"
    	exit 1
    fi
    if souci2; then
    	echo "souci2"
    	exit 2
    fi
    if souci3; then
    	echo "souci3"
    	exit 3
    fi
     
    ... ici enfin le traitement et toute la place de l'écrire sur 500 lignes si nécessaire...
    On peut moduler, affiner, changer l'ordre des soucis ou les invalider si on veut shunter certaines branches. Mettre une valeur distincte dans le exit donnera aussi un point possible de référence pour l'appelant, bref...
    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]

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut
    ça devient lourd s'il faut préciser le statut de chaque liste de commandes parce que la dernière commande pourrait faire continuer d'exécuter la suite conditionnelle implicite.
    alors, en effet, il vaut mieux utiliser une structure conditionnelle explicite (if...then...elif...else..fi).
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  9. #29
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 360
    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 360
    Par défaut
    Donc ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    souci1 && { echo souci1 ; exit 1; }
    souci2 && { echo souci2 ; exit 2; }
    souci3 && { echo souci3 ; exit 3; }

  10. #30
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 360
    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 360
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    ça devient lourd s'il faut préciser le statut de chaque liste de commandes parce que la dernière commande pourrait faire continuer d'exécuter la suite conditionnelle implicite.
    alors, en effet, il vaut mieux utiliser une structure conditionnelle explicite (if...then...elif...else..fi).
    ça je suis d'accord, mais pas une fausse excuse du genre il vaut mieux traiter les cas d'échec en premier.

  11. #31
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 840
    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 840
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    Donc ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    souci1 && { echo souci1 ; exit 1; }
    souci2 && { echo souci2 ; exit 2; }
    souci3 && { echo souci3 ; exit 3; }
    Oui bien sûr, la forme importe peu. Si tu préfères les accolades... C'est juste que j'ai pas l'habitude de les utiliser que j'ai explicité if...fi

    Citation Envoyé par disedorgue Voir le message
    mais pas une fausse excuse du genre il vaut mieux traiter les cas d'échec en premier.
    Ben c'est un peu l'impression que donne ton dernier code. J'ai sincèrement l'impression que le travail dit "travail utile" va être écrit après et donc qu'il a traité les cas d'échec en premier et que tu as trouvé ça tout naturel de l'écrire dans ce sens.
    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. #32
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 360
    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 360
    Par défaut
    Peut-être, personnellement, le bout de code que j'ai écris se basait sur le code du post #15

  13. #33
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2018
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2018
    Messages : 129
    Par défaut
    Hello,

    DOnc la avec ce bout de code j'arrive à trouver des infos interessantes cela m'avait été proposé mais j'avais pas réussi à l'appliquer . Maintenant c'est bon. Cela donne une idée plus précise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #!/bin/bash
     
    repRecherche=/poche/guibs/sftpusers/
    log=/poche/guibs/log/fichierlog.txt
    if test ! -e $repRecherche/*; then
    	echo "Aucun fichier n'existe"
    	exit 1
    fi
    echo "Des fichiers existent"
    find "$repRecherche" -printf "%a\t %c\t %t\t %p\n\n" -type f \( -name "*.flag" -o -name "*.tar.gz" -o -name "*.zip" -o -name "*.txt" \) > "$log"

    En parcourant des forums, j'ai trouvé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    #/bin/bash
    divider===============================
    divider=$divider$divider
     
    header="\n %-10s %8s %10s %11s\n"
    format=" %-10s %08d %10s %11.2f\n"
     
    width=43
     
    printf "$header" "ITEM NAME" "ITEM ID" "COLOR" "PRICE"
     
    printf "%$width.${width}s\n" "$divider"
     
    printf "$format" \
    Triangle 13  red 20 \
    Oval 204449 "dark blue" 65.656 \
    Square 3145 orange .7

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $ ./table 
     
     ITEM NAME   ITEM ID      COLOR       PRICE
    ===========================================
     Triangle   00000013        red       20.00
     Oval       00204449  dark blue       65.66
     Square     00003145     orange        0.70
    Je me suis dit le résultat affiché est présentable. Pourriez-vous m'aiguillez à appliquer dans mon script le même genre de présentation s'il vous plait


    Citation Envoyé par disedorgue Voir le message
    Bah, chacun voit le verre à sa façon (à moitié vide ou à moitié plein), moi, tant que la bouteille n'est pas vide

  14. #34
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2018
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2018
    Messages : 129
    Par défaut
    Hello,

    Donc la avec ce bout de code j'arrive à trouver des infos intéressantes cela m'avait été proposé mais j'avais pas réussi à l'appliquer . Maintenant c'est bon. Cela donne une idée plus précise :




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #!/bin/bash
     
    repRecherche=/poche/guibs/sftpusers/
    log=/poche/guibs/log/fichierlog.txt
    if test ! -e $repRecherche/*; then
    	echo "Aucun fichier n'existe"
    	exit 1
    fi
    echo "Des fichiers existent"
    find "$repRecherche" -printf "%a\t %c\t %t\t %p\n\n" -type f \( -name "*.flag" -o -name "*.tar.gz" -o -name "*.zip" -o -name "*.txt" \) > "$log"
    En parcourant des forums, j'ai trouvé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    #/bin/bash
    divider===============================
    divider=$divider$divider
     
    header="\n %-10s %8s %10s %11s\n"
    format=" %-10s %08d %10s %11.2f\n"
     
    width=43
     
    printf "$header" "ITEM NAME" "ITEM ID" "COLOR" "PRICE"
     
    printf "%$width.${width}s\n" "$divider"
     
    printf "$format" \
    Triangle 13  red 20 \
    Oval 204449 "dark blue" 65.656 \
    Square 3145 orange .7

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $ ./table 
     
     ITEM NAME   ITEM ID      COLOR       PRICE
    ===========================================
     Triangle   00000013        red       20.00
     Oval       00204449  dark blue       65.66
     Square     00003145     orange        0.70

    Je me suis dit le résultat affiché est présentable. Pourriez-vous m'aiguillez à appliquer dans mon script le même genre de présentation s'il vous plait

  15. #35
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 840
    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 840
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par saga974 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if test ! -e $repRecherche/*; then
    	echo "Aucun fichier n'existe"
    	exit 1
    fi
    Alors si tu as bien lu tous les posts (même si certains ont dévié), ça c'est une grosse connerie car si le dossier contient plus d'un fichier, le test -e part en couilles. Je sais que c'est moi qui te l'ai donnée mais ça n'empêche pas.
    Donc je rattrappe ma bourde via cette autre solution qui, elle, fonctionne nickel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if test -n "$(find "$repRecherche" -maxdepth 0 -empty)"; then
    	echo "Aucun fichier n'existe"
    	exit 1
    fi
    L'option "-empty" n'affiche le retour que si le dossier est vide. Donc si chaine affichée (ce que teste l'option "-n"), alors dossier vide. Accessoirement tu remarqueras les guillemets autour de "$repRecherche" pour gérer les noms avec espace.

    Citation Envoyé par saga974 Voir le message
    Pourriez-vous m'aiguillez à appliquer dans mon script le même genre de présentation s'il vous plait
    Ca se fait avec les formats de printf. Le format "%d" affiche un nombre, le format "%05d" affiche un nombre avec 5 zéros à gauche, le format "%5d" affiche un nombre avec 5 espaces à gauche. Te suffit de tester en direct (ex printf "%5d" 123) puis quand tu trouves ce qui te convient tu l'inclus dans le script.
    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]

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find "$repRecherche" -type f \( -name "*.flag" -o -name "*.tar.gz" -o -name "*.zip" -o -name "*.txt" \)  -fprintf "%a\t %c\t %t\t %p\n\n" "$log"
    ce n'est pas grand-chose, mais quand une commande propose de faire le boulot du shell...
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  17. #37
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2018
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2018
    Messages : 129
    Par défaut
    J'ai appliqué ton bout de code ca fonctionne très bien.

    Le maxdepth 0 signifie bien qu'il ira chercher tous les répertoires et sous répertoires ainsi que leurs fichiers à partir de SFTPUSERS c'est ca ?
    Pour le format en fait pour bien cibler l'attendu en gros c'est est il possible de mettre un header dans le résultat renvoyé dans le fichierlog.txt afin d'avoir quelque chose de plus présentable ? Le printf en effet s'occupe bien d'ordonner dans un premier temps mais je cherche a affiner la forme disons.

    Egalement, j'ai vu ton conseil sur la commande printf et l'affichage des nombres. J'avais commencé à l'appliquer pour obtenir l'heure du genre 15:46:35 et enlever les résidus de chiffre en trop mais du coup ca m'enleve l'année
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find "$repRecherche" -printf "%a\t %.19c\t %t\t %p\n\n" -type f \( -name "*.flag" -o -name "*.tar.gz" -o -name "*.zip" -o -name "*.txt" \) > "$log"
    Sais-tu comment enlever les résidus de chiffre après l'heure tout en conservant l'année qui reste judicieuse ?

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut
    si tu veux choisir les informations d'horodatage à afficher, utilise plutôt %A... %C... %T... (cf.man find)
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  19. #39
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 840
    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 840
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par saga974 Voir le message
    Le maxdepth 0 signifie bien qu'il ira chercher tous les répertoires et sous répertoires ainsi que leurs fichiers à partir de SFTPUSERS c'est ca ?
    Certainement pas !!! On a besoin de descendre tout au fond d'un dossier pour savoir s'il est vide ???
    maxdepth signifie que la profondeur maximale (max=maximum et depth=profondeur) sera de 0 sous-dossiers, donc qu'il ne reste qu'au niveau du dossier demandé, ce qui est largement suffisant pour vérifier s'il est vide ou pas.

    Citation Envoyé par saga974 Voir le message
    Pour le format en fait pour bien cibler l'attendu en gros c'est est il possible de mettre un header dans le résultat renvoyé dans le fichierlog.txt afin d'avoir quelque chose de plus présentable ?
    Ben tu commences par écrire le header, puis tu fais le find.
    Tu peux regrouper l'ensemble dans des parenthèses
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    (
    	echo header
    	find ...
    ) >log
    Ca évite de mettre 500 redirections

    Citation Envoyé par saga974 Voir le message
    Sais-tu comment enlever les résidus de chiffre après l'heure tout en conservant l'année qui reste judicieuse ?
    Directement non. On peut rediriger le find dans une commande X (ou un groupe de commande, ou une fonction) qui se chargera de mettre au propre. Après tout, c'est le principe de base d'Unix de n'avoir que des commandes qui ne font qu'une chose mais qui la font bien, et en les chainant on peut faire ce qu'on veut.
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    mise_au_propre() {
    	while read ligne; do
    		echo "$ligne"
    	done
    }
     
    (
    	echo header
    	find ... |mise_au_propre
    ) >log
    Bon ici la "mise au propre" ne fait que réécrire ce qu'elle reçoit mais charge à toi de coder ça pour qu'elle te donne ce que tu veux.
    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. #40
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 664
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut
    Directement non.
    si si. cf. mon précédent message
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

Discussions similaires

  1. [FTP] Listing fichiers comme sur un FTP
    Par zxr69 dans le forum Langage
    Réponses: 7
    Dernier message: 21/09/2006, 14h22
  2. liste fichiers et numéros
    Par biquet dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 12/07/2006, 15h49
  3. [TinyXML] vérification d'un fichier avec une DTD
    Par vasilov dans le forum Bibliothèques
    Réponses: 2
    Dernier message: 14/03/2006, 15h33
  4. liste fichiers (TListView) avec icones
    Par pjb dans le forum C++Builder
    Réponses: 2
    Dernier message: 01/07/2005, 09h06
  5. Vérification d'un fichier
    Par Oberown dans le forum C++
    Réponses: 10
    Dernier message: 24/08/2004, 16h23

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