La création d'un tableau HTML avec BASH & AWK

Je vais avoir des problèmes de la création d'un tableau html à afficher les statistiques à partir d'un fichier texte. Je suis sûr qu'il y a 100 façons de faire mieux, mais ici, c'est:

(Les commentaires dans le script ci-dessous montrent les résultats)

#!/bin/bash

function getapistats () {
    curl -s http://api.example.com/stats > api-stats.txt
    awk {'print $1'} api-stats.txt > api-stats-int.txt
    awk {'print $2'} api-stats.txt > api-stats-fqdm.txt
}

# api-stats.txt example
#    992 cdn.example.com
#    227 static.foo.com
#    225 imgcdn.bar.com
# end api-stats.txt example

function get_int () {

    for i in `cat api-stats-int.txt`;
        do echo -e "<tr><td>${i}</td>";
    done
}

function get_fqdn () {

    for f in `cat api-stats-fqdn.txt`;
        do echo -e "<td>${f}</td></tr>";
    done

}

function build_table () {

echo "<table>";
echo -e "`get_int`" "`get_fqdn`";
#echo -e "`get_fqdn`";
echo "</table>";
}

getapistats;

build_table > api-stats.html;

# Output fail :|
# <table>
# <tr><td>992</td>
# <tr><td>227</td>
# <tr><td>225</td><td>cdn.example.com</td></tr>
# <td>static.foo.com</td></tr>
# <td>imgcdn.bar.com</td></tr>

# Desired output:
# <tr><td>992</td><td>cdn.example.com</td></tr>
# ...
Les guillemets à aller à l'extérieur les accolades. Je sais que ça fonctionne comme ça, mais à la prochaine simple augmentation de la complexité de la panne. N'utilisez pas de for i in $(cat) - utilisation while read -r; do ...; done < filename. Utilisation $() au lieu de backticks.

OriginalL'auteur jdorfman | 2012-07-14