有人可以帮助我如何在循环中转换它,以便该逻辑适用于所有行,我希望如果第 4 列大于第 3 列,则第 4 列将呈红色,我将在电子邮件正文中使用相同的 txt 文件,以便突出显示在那里可见
App Launch Time, Login Page, 7091, 8091
Page Load Time, Home Page, 303, 993
Page Api Response, Home Page, 861, 761
Page Parsing Time, Home Page, 141, 221
使用下面的shell脚本
a=`awk -F',' '{print $1}' 'input.csv'`
b=`awk -F',' '{print $2}' 'input.csv'`
c=`awk -F',' '{print $3}' 'input.csv'`
d=`awk -F',' '{print $4}' 'input.csv'`
if [ $d -gt $c ]
then
echo '<tr>' '<td align="center">'$a'</td>' '<td align="center">'$b'</td>' '<td align="center">'$c'</td>' '<td align="center" bgcolor="red">'$d'</td>' '</tr>' >> compare.txt
else
echo '<tr>' '<td align="center">'$a'</td>' '<td align="center">'$b'</td>' '<td align="center">'$c'</td>' '<td align="center">'$d'</td>' '</tr>' >> compare.txt
fi
echo '</table>' >> compare.txt
txt 文件中的输出如下 - 下面 1 行的输出要求所有行都相同
<tr> <td align="center">AppLaunchTime</td> <td align="center">LoginPage</td> <td align="center">7091</td> <td align="center" bgcolor="red">8091</td> </tr>
app_launch_time=`awk -F',' '{print $1}' 'input.csv'`
login_page=`awk -F',' '{print $2}' 'input.csv'`
column3=`awk -F',' '{print $3}' 'input.csv'`
column4=`awk -F',' '{print $4}' 'input.csv'`
echo '<table>' > compare.txt
while read -r line; do
columns=(${line//,/ })
app_launch_time=${columns[0]}
login_page=${columns[1]}
column3=${columns[2]}
column4=${columns[3]}
# If column4 is greater than column3, highlight it in red
if [[ "$column4" -gt "$column3" ]]; then
echo '<tr>' '<td align="center">'$app_launch_time'</td>' '<td align="center">'$login_page'</td>' '<td align="center">'$column3'</td>' '<td align="center" bgcolor="red">'$column4'</td>' '</tr>' >> compare.txt
else
echo '<tr>' '<td align="center">'$app_launch_time'</td>' '<td align="center">'$login_page'</td>' '<td align="center">'$column3'</td>' '<td align="center">'$column4'</td>' '</tr>' >> compare.txt
fi
done < input.csv
echo '</table>' >> compare.txt