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

Applications et environnements graphiques Discussion :

Redirections awk PHP et Affichage


Sujet :

Applications et environnements graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de flotho
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Novembre 2006
    Messages : 156
    Par défaut Redirections awk PHP et Affichage
    Bonjour à tous,

    Je travaille actuellement sur un script qui mélange du PHP et du awk dans un bash.
    J'ai procédé à des redirections qui me semblent subtiles et me permettent de gagner du temps :
    (awk1 <fich1 & php) | awk2 >fich2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ( awk -F";" 'BEGIN { OFS=";"}{ gsub(/ *  /," "); print;fflush()}' < icecat_data.csv & php Recup_Icecat.php) | awk -F";" 'BEGIN { OFS=";"}{ gsub(/\"\"\"/,"\""); print; fflush()}1' > icecat_data_net.csv ;
    Le script PHP génère un fichier icecat_data.csv qui est lu en tâche de fond pour nettoyer les espaces et les guillemets doubles. Tout cela fonctionne correctement. Il me reste toutefois une problématique que je n'ai pas réussi à régler.
    En effet, le script PHP génère des messages sur la sortie standard via de simple echo. Lorsque je le lance seul, pas de problèmes, en revanche dans cette succession de process, plus rien en affichage! Pour des petits traitements ce n'est pas grave mais pour un fichier de plusieurs dizaines de milliers de ligne, on aura l'impression que la chose est figée.

    D'où ma question, comment faire pour conserver l'affichage sur la sortie standard dans cette succession de commande?

    J'ai essayé :
    - (awk1 <fich1 | awk2 >fich2 ) & php affiche la sortie php mais ne restitue pas correctement fich2
    - ( awk2 >fich2 & awk1 <fich1 ) & php affiche la sortie php mais ne restitue pas correctement fich2

    je suis ouvert à d'autres propositions ;-)

    Merci d'avance de vos propositions.

  2. #2
    Membre très actif

    Homme Profil pro
    Responsable projets techniques
    Inscrit en
    Février 2003
    Messages
    980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable projets techniques
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2003
    Messages : 980
    Par défaut
    Je peux me gourer, mais tout cela me semble bien compliqué pour pas forcément grand chose

    Tu ne voudrais pas ré-expliquer un peu plus clairement ce que tu veux avoir au final ?

    J'ai compris que tu as un script php qui écrit dans un fichier icecat_data.csv et qui écrit des infos sur stdout.
    Le fichier généré passe ensuite dans awk pour le nettoyer. Pour ce que j'en comprends, tu souhaites que awk parse le fichier au fur et à mesure qu'il est renseigné par le script php ?
    Pour finir, il y a un second nettoyage (pourquoi pas directement dans le premier ?).

    Citation Envoyé par flotho Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (awk -F";" 'BEGIN { OFS=";"}{ gsub(/ *  /," "); print;fflush()}' < icecat_data.csv & php Recup_Icecat.php) | awk -F";" 'BEGIN { OFS=";"}{ gsub(/\"\"\"/,"\""); print; fflush()}1' > icecat_data_net.csv ;
    Peut-être que je ne connais pas assez certains points, mais tu es sûr que ce que tu as ci-dessus va fonctionner ? Notamment la lecture en continue du premier awk sur ton fichier...
    De plus, pour moi, si ton php écrit en sortie standard, ce qu'il produit va rentrer dans le second awk tout comme la sortie du premier awk !

    Bon, après, je me gourre peut-être, mais j'ai vraiment pas l'impression que ça puisse marcher Peut-être que la méthode retenue n'est pas la bonne ?

  3. #3
    Membre confirmé Avatar de flotho
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Novembre 2006
    Messages : 156
    Par défaut
    Citation Envoyé par Alek-C Voir le message
    Tu ne voudrais pas ré-expliquer un peu plus clairement ce que tu veux avoir au final ?
    J'ai compris que tu as un script php qui écrit dans un fichier icecat_data.csv et qui écrit des infos sur stdout.
    Le fichier généré passe ensuite dans awk pour le nettoyer. Pour ce que j'en comprends, tu souhaites que awk parse le fichier au fur et à mesure qu'il est renseigné par le script php ?
    Pour finir, il y a un second nettoyage (pourquoi pas directement dans le premier ?).
    Dans le principe c'est exactement cela. Je vais tenter de mettre les deux nettoyage ensemble!
    Peut-être que je ne connais pas assez certains points, mais tu es sûr que ce que tu as ci-dessus va fonctionner ? Notamment la lecture en continue du premier awk sur ton fichier...
    De plus, pour moi, si ton php écrit en sortie standard, ce qu'il produit va rentrer dans le second awk tout comme la sortie du premier awk !
    La lecture en continue du premier fichier semble fonctionner et cela me permet de gagner un temps considérable. Et en effet j'ai un problème pour le second nettoyage. Je ne l'avais pas remarqué!

  4. #4
    Membre confirmé Avatar de flotho
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Novembre 2006
    Messages : 156
    Par défaut
    Suite à vos conseils éclairés j'ai donc abouti à la commande suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (awk -F";" '{ gsub(/ *  /," ");gsub(/\"\"/,""); gsub(/\";\"/,";"); gsub(/;/,"\";\"");print;fflush()}' < icecat_data.csv > icecat_data_net.csv) & php Recup_Icecat.php ;
    Et là tout fonctionne comme il faut et j'ai même optimisé d'autres parties de mon code grâce à vos conseils.

    Cordialement,

  5. #5
    Membre très actif

    Homme Profil pro
    Responsable projets techniques
    Inscrit en
    Février 2003
    Messages
    980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable projets techniques
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2003
    Messages : 980
    Par défaut
    Intéressant, je ne connaissais pas ce truc pour lire un fichier en continue par awk !

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

Discussions similaires

  1. [PHP-JS] Affichage d'une galerie via un select.
    Par mLk92 dans le forum Langage
    Réponses: 9
    Dernier message: 26/07/2006, 17h24
  2. [PHP-JS] Affichage de message d'erreur
    Par lodan dans le forum Langage
    Réponses: 7
    Dernier message: 20/07/2006, 18h50
  3. [PHP-JS] Affichage d'une valeur calculée
    Par harley dans le forum Langage
    Réponses: 3
    Dernier message: 02/06/2006, 09h39
  4. Equivalent Response.redirect en PHP ?
    Par Kotik dans le forum Langage
    Réponses: 2
    Dernier message: 06/04/2006, 11h34
  5. [PHP-JS] Affichage d'une image dans une popup à la taille
    Par urbanspike dans le forum Langage
    Réponses: 3
    Dernier message: 27/09/2005, 20h53

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