Попробуйте сравнить значение в 4-м столбце с 85, и если оно превышает пороговое значение, добавьте background-color
свойство:
awk '
BEGIN {print "<table border=2 cellspacing=2 cellpadding=2>"}
{ print "<tr>";
for(i=1;i<=NF;i++) {
(NR>1 && i==4 && substr($i,0,length($i)-1) >85) ? bg=" style=\"background-color:#ff0000\"" : bg=""
print "<td" bg ">" $i"</td>"
}
print "</tr>"
}
END {print "</table>"}' input.txt
Вот входные данные:
Size Used Avail Use% Mounted
126G 80G 40G 67% /u01
63G 9.6G 51G 16% /u01/app/grid
126G 110G 16G 87% /u02
И вывод:
<table border=2 cellspacing=2 cellpadding=2>
<tr>
<td>Size</td>
<td>Used</td>
<td>Avail</td>
<td>Use%</td>
<td>Mounted</td>
</tr>
<tr>
<td>126G</td>
<td>80G</td>
<td>40G</td>
<td>67%</td>
<td>/u01</td>
</tr>
<tr>
<td>63G</td>
<td>9.6G</td>
<td>51G</td>
<td>16%</td>
<td>/u01/app/grid</td>
</tr>
<tr>
<td>126G</td>
<td>110G</td>
<td>16G</td>
<td style="background-color:#ff0000">87%</td>
<td>/u02</td>
</tr>
</table>
Измените часть #ff0000
, чтобы изменить цвет фона на ваш любимый.
Добавление: если вы хотите обработать первую строку как заголовок, попробуйте что-то вроде:
awk '
BEGIN {print "<table border=2 cellspacing=2 cellpadding=2>"}
{
print "<tr>"
if (NR==1) {starttag="th scope=\"col\""; endtag="th"}
else {starttag="td"; endtag="td"}
for(i=1;i<=NF;i++) {
(NR>1 && i==4 && substr($i,0,length($i)-1) >85) ? bg=" style=\"background-color:#ff0000\"" : bg=""
print "<" starttag bg ">" $i"</" endtag ">"
}
print "</tr>"
}
END {print "</table>"}' input.txt