Boucle, sed, awk pour traiter les données
marc
-
dubcek Messages postés 18789 Date d'inscription Statut Contributeur Dernière intervention -
dubcek Messages postés 18789 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Me lançant dans la création de scripts CGI j'ai quelques problèmes à comprendre :
Me retourne un joli résultat formaté que j'appelle dans une iframe :
Seulement je souhaiterais pouvoir traiter les données ligne par ligne pour les insérer dans un tableau html.
Alors j'ai essayé dans un premier temps de mette chaque ligne dans une case du tableau àl'aide d'un tuto trouvé sur CCM :
Mais niet, soit rien ne s'affiche, soit il n'y a pas de mise en page. Où est-ce que je me trompe-je ? et/ou comment feriez-vous ?
Merci
Me lançant dans la création de scripts CGI j'ai quelques problèmes à comprendre :
#!/bin/bash OUTPUT="$(/bin/commande)" echo "Content-type: text/html" echo "" echo "<pre>$OUTPUT</pre>"
Me retourne un joli résultat formaté que j'appelle dans une iframe :
1 param1 param2 param3 param4 2 param5 param6 param7 param8 param9
Seulement je souhaiterais pouvoir traiter les données ligne par ligne pour les insérer dans un tableau html.
Alors j'ai essayé dans un premier temps de mette chaque ligne dans une case du tableau àl'aide d'un tuto trouvé sur CCM :
#!/bin/bash OUTPUT="$(/bin/commande | while read line; do echo "<td>$line</td>"; done)" echo "Content-type: text/html" echo "" echo "<table>" echo "<tr>" echo "$OUTPUT" echo "</tr>" echo "</table>"
Mais niet, soit rien ne s'affiche, soit il n'y a pas de mise en page. Où est-ce que je me trompe-je ? et/ou comment feriez-vous ?
Merci
A voir également:
- Boucle, sed, awk pour traiter les données
- Fuite données maif - Guide
- Supprimer les données de navigation - Guide
- Trier des données excel - Guide
- Reconsidérer le traitement de vos données à des fins publicitaires - Accueil - Réseaux sociaux
- Sauvegarde des données - Guide
2 réponses
Il faudrait que tu nous expliques le résultat que tu attends avec ce fichier :
... ainsi que quelques autres informations :
- quel(s) caractère(s) est (sont) utilisé(s) pour séparer les différentes cases (tabulation ?)
- vu que toutes les lignes n'ont pas le même nombre de colonnes, connait-on à l'avance le nombre de colonnes du tableau ?
- pour les lignes qui ont un défaut de colonne, comment effectues-tu les fusions de cellule ?
En admettant que chaque ligne ait le même nombre de colonnes, dans l'idée, il faut changer chaque début de ligne (^)par <tr><td>, chaque fin de ligne ($) par </td></tr>, chaque séparateur (le caractère espace ?) par </td><td>. Ensuite il faut insérer le <table> et le </table> en début et fin de fichiers.
Tu peux commencer à lire ceci qui explique certaines bases avec sed :
https://forums.commentcamarche.net/forum/affich-24221292-trouver-les-majuscules-avec-sed#p24228793
Mais ça donnera par exemple :
Voilà sinon à mon avis, les iframes ce n'est pas un super choix.
Bonne chance
1 param1 param2 param3 param4 2 param5 param6 param7 param8 param9
... ainsi que quelques autres informations :
- quel(s) caractère(s) est (sont) utilisé(s) pour séparer les différentes cases (tabulation ?)
- vu que toutes les lignes n'ont pas le même nombre de colonnes, connait-on à l'avance le nombre de colonnes du tableau ?
- pour les lignes qui ont un défaut de colonne, comment effectues-tu les fusions de cellule ?
En admettant que chaque ligne ait le même nombre de colonnes, dans l'idée, il faut changer chaque début de ligne (^)par <tr><td>, chaque fin de ligne ($) par </td></tr>, chaque séparateur (le caractère espace ?) par </td><td>. Ensuite il faut insérer le <table> et le </table> en début et fin de fichiers.
Tu peux commencer à lire ceci qui explique certaines bases avec sed :
https://forums.commentcamarche.net/forum/affich-24221292-trouver-les-majuscules-avec-sed#p24228793
Mais ça donnera par exemple :
echo "<table>"; ls -l1 / | sed -e 's% %</td><td>%' | sed -e 's%^%<tr><td>%' | sed -e 's%$%</td></tr>%'; echo "</table>"
Voilà sinon à mon avis, les iframes ce n'est pas un super choix.
Bonne chance
hello
si je remplace /bin/commande par cat a1, j'obtiens ça:
si je remplace /bin/commande par cat a1, j'obtiens ça:
$ cat a1 1 param1 param2 param3 param4 2 param5 param6 param7 param8 param9 $ $ cat f1 #!/bin/bash ##OUTPUT="$(/bin/commande | while read line; do echo "<td>$line</td>"; done)" OUTPUT="$(cat a1 | while read line; do echo "<td>$line</td>"; done)" echo "Content-type: text/html" echo "" echo "<table>" echo "<tr>" echo "$OUTPUT" echo "</tr>" echo "</table>" $ $ ./f1 Content-type: text/html <table> <tr> <td>1 param1 param2 param3 param4</td> <td>2 param5 param6 param7 param8 param9</td> </tr> </table> $ $