Количество выполнения процессов является не обязательно хорошим индикатором для "ясности".
Возьмите, например, FreeBSD devd
который использует сокет для передачи где udev
D-шина использования (и следовательно нуждается в другом dbus-daemon
процесс). Количество процесса: 1:2
. Но D-шина вводит намного больше функций и возможностей, многие другие системные демоны используют ее (обработанный тем же dbus-daemon
процесс), также. Теперь, какой более ясен?
Плюс, я предполагаю, что можно заставить любую систему GNU/Linux не-GUI "использовать меньше процессов", путем принесения в жертву функций (т.е. не используют никого *Наборы) - и справедливое сравнение между BSD и этой системой (если это имеет значение) может только быть сделан, когда набор функций соответствует.
Это добьется цели:
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
:
:[^,]*(,|$)
Это будет соответствовать : 'participation.type',
и :'participation'\n
($
конец средств входа/строки в regex).
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, получите:
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
Я знаю, что это поздний ответ на этот вопрос, но он поможет тем, кто ищет решение для преобразования вывода команды bash в формат таблицы html. Для этого доступен простой сценарий по адресу :https://sourceforge.net/projects/command-output-to-html-table/, который можно использовать для преобразования любого вывода команды или файла в удобный формат таблицы html.
Если у вас есть 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"