Как я могу преобразовать файл в таблицу HTML, используя Perl? - PullRequest
2 голосов
/ 30 апреля 2010

Я пытаюсь написать простой скрипт на Perl CGI, который:

  • запускает скрипт CLI
  • читает полученный файл .out и преобразует данные в файле в таблицу HTML.

Вот некоторые примеры данных из файла .out:

 10.255.202.1   2472327594  1720341
 10.255.202.21   2161941840  1484352
  10.255.200.0   1642646268  1163742
 10.255.200.96   1489876452  1023546
 10.255.200.26   1289738466   927513
 10.255.202.18   1028316222   706959
 10.255.200.36    955477836   703926

Любая помощь будет высоко ценится.

Ответы [ 3 ]

1 голос
/ 30 апреля 2010

Следующее не проверено и, вероятно, требует много полировки, но дает грубое представление:

use CGI qw/:standard *table/;

print
  start_html('clicommand results'),
  start_table;

open(my $csvh, 'clicommand |');

while (<$csvh>) {
   print Tr(map { td($_) } split);
}

close($csvh);

print
  end_table,
  end_html;  
0 голосов
/ 30 апреля 2010

Скорее всего, вы захотите сделать HTML красивее, используя таблицу стилей CSS или добавив границы в таблицу, но вот простое начало.

#!/usr/bin/perl

use strict;
use warnings;

my $output = `cat dat`;
my @lines  = split /\n/, $output;

my @data;
foreach my $line (@lines) {
    chomp $line;
    my @d = split /\s+/, $line;
    push @data, \@d;
}

print <<HEADER;
<html>
<table>
HEADER

foreach my $d (@data) {
    print "\t", "<tr>";
    print map { "<td>$_</td>" } @$d;
    print "</tr>", "\n";
}

print <<FOOTER;
</table>
</html>
FOOTER

Это дает следующий вывод:

<html>
<table>
        <tr><td>10.255.202.1</td><td>2472327594</td><td>1720341</td></tr>
        <tr><td>10.255.202.21</td><td>2161941840</td><td>1484352</td></tr>
        <tr><td>10.255.200.0</td><td>1642646268</td><td>1163742</td></tr>
        <tr><td>10.255.200.96</td><td>1489876452</td><td>1023546</td></tr>
        <tr><td>10.255.200.26</td><td>1289738466</td><td>927513</td></tr>
        <tr><td>10.255.202.18</td><td>1028316222</td><td>706959</td></tr>
        <tr><td>10.255.200.36</td><td>955477836</td><td>703926</td></tr>
</table>
</html>

Чтобы понять, как изменить внешний вид ваших HTML-таблиц, хорошая запись на веб-сайте w3schools в теге таблицы .

0 голосов
/ 30 апреля 2010

Это не дает прямого ответа на ваш вопрос, но возможно ли использовать вместо него AWK? Не должно быть слишком сложно обернуть весь контент, а затем каждую запись столбца с соответствующими HTML-тегами для создания базовой таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...