Преобразуйте csv в HTML-таблицу

Количество выполнения процессов является не обязательно хорошим индикатором для "ясности".

Возьмите, например, FreeBSD devd который использует сокет для передачи где udev D-шина использования (и следовательно нуждается в другом dbus-daemon процесс). Количество процесса: 1:2. Но D-шина вводит намного больше функций и возможностей, многие другие системные демоны используют ее (обработанный тем же dbus-daemon процесс), также. Теперь, какой более ясен?

Плюс, я предполагаю, что можно заставить любую систему GNU/Linux не-GUI "использовать меньше процессов", путем принесения в жертву функций (т.е. не используют никого *Наборы) - и справедливое сравнение между BSD и этой системой (если это имеет значение) может только быть сделан, когда набор функций соответствует.

8
23.05.2017, 15:39
5 ответов

Это добьется цели:

echo "<table>" ;
print_header=true
while read INPUT ; do
  if $print_header;then
    echo "<tr><th>$INPUT" | sed -e 's/:[^,]*\(,\|$\)/<\/th><th>/g'
    print_header=false
  fi
  echo "<tr><td>${INPUT//,/</td><td>}</td></tr>" ;
done < Medical.csv ;
echo "</table>"

Объяснение используемого regex sed:

:[^,]*(,|$)

Regular expression visualization

Это будет соответствовать : 'participation.type', и :'participation'\n ($ конец средств входа/строки в regex).

12
27.01.2020, 20:11
Вот скрипт оболочки, который будет преобразовывать CSV в HTML:

cat \(foo\)
cat '(foo)'
http://giantdorks.org/alain/bash-and-awk-to-convert-delimited-data-csv-tsv-etc-to-html-tables/

Для конкретного случая использования.

Предполагая, что следующий оригинальный CSV:

Вы можете захотеть изменить его немного:

Чтобы получить следующую очищенную версию:

Затем запустив скрипт, связанный ранее с оригинальным CSV, получите следующий HTML:

$ echo $?

Запустив его на очищенном CSV, получите:

0
27.01.2020, 20:11
host=`hostname`
now=`date +"%d-%b-%y"`
now=`echo $now| tr '[a-z]' '[A-Z]'`
yest=`TZ=CST+24 date +%d-%b-%y`
yest=`echo $yest| tr '[a-z]' '[A-Z]'`
sub="Jobs-$host-$now-HealthReport"

if [ -s jobs.csv ]
then
awk 'BEGIN{
FS=","
print "<HTML>""<TABLE border=1 width='100%' align='centre' ><tr bgcolor='#000080'><TH><FONT COLOR='#FFFFFF'>HSCR-DBMSJOB HEALTH REPORT  </TH></FONT>"
print "</TABLE>"
print "<HTML>""<TABLE border=1 width='100%' align='centre' bgcolor='#C6C6C6' BORDERCOLOR='#CCFF00' ><tr bgcolor='#5F9EA0'><TH>SUMMARY</TH>"
print "</TABLE>"
print "<HTML><TABLE border=2 width='100%' align='centre' BORDERCOLOR='#330000' ><trbgcolor='#FFFFCC'>"

print "<TH>BROKEN</TH><TH>SCHEMA_USER</TH><TH>JOB_ID</TH><TH>LAST_DATE</TH><TH>LAST_SEC</TH><TH>THIS_DATE</TH>"
print "<TH>THIS_SEC</TH><TH>NEXT_DATE</TH><TH>NEXT_SEC</TH><TH>NAME</TH>"
}


{
    printf "<TR>"
            for(i=1;i<=10;i++){

                      if(i == 1 && $i == "N" || i == 4 && $i == n || i == 4 && $i == y )
                    {
                            printf "<TD bgcolor='#75923C'>%s</TD>", $i
                    }
                    else if(i == 1 && $i == "Y" || i == 4 && $i != n && $i != y)
                    {
                            printf "<TD bgcolor='#FF0000'>%s</TD>", $i
                    }
                    else
{
                            printf "<TD>%s</TD>", $i
}
            }
            print "</TR>"
    }

END{

            print "</TABLE></BODY></HTML>"
    }' y="$yest" n="$now" jobs.csv > jobstatus-$host-$now.html
else
echo "file not found"

fi
0
27.01.2020, 20:11

Я знаю, что это поздний ответ на этот вопрос, но он поможет тем, кто ищет решение для преобразования вывода команды bash в формат таблицы html. Для этого доступен простой сценарий по адресу :https://sourceforge.net/projects/command-output-to-html-table/, который можно использовать для преобразования любого вывода команды или файла в удобный формат таблицы html.

0
27.01.2020, 20:11

Если у вас есть sqlite и командная строка -программа sqlite3, вы можете запустить эту программу, а затем:

.import --csv input.csv tmp
.mode html
.output output.html
select * from tmp;

Возможно, вам потребуется что-то добавить в полученный HTML-файл, например.

<!doctype html>
<table>

, чтобы он распознавался браузерами.

В качестве сценария bash это может быть

#!/bin/bash
TMP=`mktemp csv.XXXXX`
trap "rm -f $TMP" EXIT
(echo.import "$1" tmp; echo.mode html; echo.output "$TMP"; echo 'select * from tmp;' ) | sqlite3
awk 'BEGIN{print "<!doctype html><table>"};{print}' < "$TMP" > "$2"
1
03.12.2021, 15:36

Теги

Похожие вопросы