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 :

Récupérer en sortie un fichier csv avec données issues du traitement


Sujet :

Shell et commandes GNU

  1. #1
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut Récupérer en sortie un fichier csv avec données issues du traitement
    Salut,

    J'utilise ce petit script sur un dossier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #!/bin/bash
     
     
    for file in /Users/leUser/Desktop/VIDEOS/*.avi; do
            ffprobe -i $file -show_frames 2>&1 | grep -c media_type=video >> ${file}.txt
    done
    qui me crache dans 1 fichier texte pour chaque vidéo, le nombre de frames dans une vidéo

    Idéalement je souhaiterai qu'il me crache un fichier CSV à 2 colonnes pour tout le traitement avec le nom du fichier vidéo et le nombre de frames.
    Je me suis dit que je pourrai me tourner vers SED mais je n'y arrive pas à le faire fonctionner correctement.

    Une idée ?
    -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_SIGNATURE -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
    Dans la mesure du possible, essayez de montrer votre problème en situation réelle en nous donnant une url, que l'on puisse tester.
    Pensez également à cocher

    Aucun problème ne doit être résolu en MP (Message Privé) le forum est là pour ça.

    Dimension Internet

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 392
    Points
    19 392
    Par défaut
    Bonjour,

    à quoi ressemble la sortie de ffprobe ?
    pourquoi demandes-tu à grep de compter les occurrences de media_type=video ?

    qu'as-tu essayé avec sed ? qu'est-ce que ça affiche ? qu'est-ce que ça devrait afficher ?
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juillet 2014
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2014
    Messages : 84
    Points : 197
    Points
    197
    Par défaut
    Je tenterais un code du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #!/bin/bash
     
    echo "Ficher;Nombre de frame" > resultat.csv
     
    for file in /Users/leUser/Desktop/VIDEOS/*.avi; do
            val=$(ffprobe -i $file -show_frames 2>&1 | grep -c media_type=video)
            echo  ${file}";"${val} >> resultat.csv
    done
    Code non testé et non vérifié.
    Par rapport au tien, j'ai rajouté un titre aux colonnes dans le fichier de sortie.

    Je pense qu'il est possible d'écrire dans le fichier de sortie mais je n'ai aucune idée de comment faire.

  4. #4
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 459
    Points
    13 459
    Par défaut
    Bonjour

    Je ne sais pas ce que sont tes fichiers vidéo mais si leur nom contient des espaces, l'utilisation de for peut être un problème.
    Mets les noms dans un fichier que tu lis par while read ligne;do ...;done ou xargs.

    qui me crache dans 1 fichier texte pour chaque vidéo
    Vue la syntaxe, j'ai plutôt l'impression que c'est un seul fichier avec 1 ligne par vidéo. On n'est pas loin du résultat attendu.

    Donne un exemple de ce que donne ffprobe.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  5. #5
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 286
    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 286
    Points : 12 743
    Points
    12 743
    Par défaut
    Bonjour,

    Exemple avec cat et grep (mon fichier xx contient une liste de nombre et je lui dis de me dire combien de fois il rencontre la chaine 175):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ cat xx | grep --label=foobar.csv -H -c 175
    foobar.csv:852
    Cordialement.

  6. #6
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 286
    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 286
    Points : 12 743
    Points
    12 743
    Par défaut
    Citation Envoyé par Flodelarab Voir le message
    Je ne sais pas ce que sont tes fichiers vidéo mais si leur nom contient des espaces, l'utilisation de for peut être un problème.
    Mouais,...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $ ls -1
    tata
    titi
    toto va a la peche
    $ for i in *
    > do
    > echo $i
    > done
    tata
    titi
    toto va a la peche
    En tout cas, chez moi, ça ne me pose aucun souci.
    Cordialement.

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 392
    Points
    19 392
    Par défaut
    ce n'est effectivement pas la boucle for, qui va poser problème, mais l'emploi, sans guillemets, de la variable.
    ça marche avec echo, ça ne marchera pas avec une autre commande, qui lira ce qu'il y a après le premier espace comme d'autres noms de fichiers.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  8. #8
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 459
    Points
    13 459
    Par défaut
    Ah oui. J'ai dit une bêtise.
    Ou une semi-bêtise. Même avec la commande echo.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $ >'tou tou you tou.txt'
    $ >'tou tou you     tou.txt'
    $ for i in *tou.txt; do echo $i;done
    tou tou you tou.txt
    tou tou you tou.txt
    $ ls -1 *tou.txt                                                                                                                                                                                   
    tou tou you     tou.txt
    tou tou you tou.txt
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  9. #9
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 286
    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 286
    Points : 12 743
    Points
    12 743
    Par défaut
    Pour le cas des espaces multiples, voir la réponse de N_BaH. Je ne faisais que remettre en cause la légende urbaine sur le for
    Cordialement.

  10. #10
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    Merci beaucoup pour toutes vos réponses,
    la réponse de JeanMi3000 marche super , par contre au final le format des films étant du R3D (Redcode) http://www.red.com/learn/red-101/redcode-file-format
    cela ne fonctionne pas
    -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_SIGNATURE -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
    Dans la mesure du possible, essayez de montrer votre problème en situation réelle en nous donnant une url, que l'on puisse tester.
    Pensez également à cocher

    Aucun problème ne doit être résolu en MP (Message Privé) le forum est là pour ça.

    Dimension Internet

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

Discussions similaires

  1. Extraire des données d'un fichier .csv avec C++
    Par cre31400 dans le forum C++Builder
    Réponses: 14
    Dernier message: 08/07/2008, 10h25
  2. Réponses: 10
    Dernier message: 02/04/2007, 17h22
  3. [CLI] Récupérer la version des fichiers à une date donnée
    Par jreeman dans le forum CVS
    Réponses: 1
    Dernier message: 27/02/2007, 11h35
  4. [CSV] Affichage d'un fichier csv avec pagination
    Par arnoweb dans le forum Langage
    Réponses: 4
    Dernier message: 26/07/2006, 15h13
  5. Réponses: 25
    Dernier message: 05/07/2006, 16h46

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