|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre régulier
![]() |
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 :
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.
__________________
Créateur www.kipigo.com Fondateur www.tdeo.fr Linux | Java | J2EE | NB Platform | Pentaho | PostgreSQL |
||
|
|
01
|
|
|
#2 | |||
|
Membre Expert
![]() |
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:
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 |
|||
|
|
10
|
|
|
#3 | ||
|
Membre régulier
![]() |
Citation:
Citation:
__________________
Créateur www.kipigo.com Fondateur www.tdeo.fr Linux | Java | J2EE | NB Platform | Pentaho | PostgreSQL |
||
|
|
10
|
|
|
#4 | ||
|
Membre régulier
![]() |
Suite à vos conseils éclairés j'ai donc abouti à la commande suivante :
Code :
Cordialement,
__________________
Créateur www.kipigo.com Fondateur www.tdeo.fr Linux | Java | J2EE | NB Platform | Pentaho | PostgreSQL |
||
|
|
10
|
|
|
#5 |
|
Membre Expert
![]() |
Intéressant, je ne connaissais pas ce truc pour lire un fichier en continue par awk !
|
|
|
10
|
|
|
#6 |
|
Membre régulier
![]() |
__________________
Créateur www.kipigo.com Fondateur www.tdeo.fr Linux | Java | J2EE | NB Platform | Pentaho | PostgreSQL |
|
|
10
|
|
|
#7 |
|
Membre Expert
![]() |
Nan mais ça, je connais
Ce que je ne savais pas, c'est que awk pouvait traiter un fichier en flux continue (avec fflush() ?) et gérer les nouvelles lignes qui y sont ajoutées. A moins que ton fichier icecat_data.csv n'en soit pas un... je n'y avais pas pensé ! Bref, faut que je regarde ça chez moi un jour :p |
|
|
10
|
Copyright © 2000-2012 - www.developpez.com