[英]HTML in unix shell scripting with sequential output
我有一個名為“ main.ksh”的腳本,該腳本返回“ output.txt”文件,並且正在通過郵件發送該文件。(列表包含50多個記錄,例如,我僅給出4條記錄)
我得到的郵件輸出是:
DATE | 飼料名稱| 文件名| 職位名稱| SCHEDULED_TIME | 時間戳| 大小(MB)| COUNT | 狀態|
12月17日INVEST_AI_FUNDS_FEED amlfunds_iai_20161217.txt gdcpl3392_uxmow080_ori_inv_ai TUE-SAT 02:03 0.4248 4031 On_Time
12月17日INVEST_AI_SECURITIES_FEED amltxn_iai_20161217.txt gdcpl3392_uxmow080_ori_inv_ai TUE-SAT 02:03 0.0015 9 On_Time
12月17日INVEST_AI_CONNECTED_PARTIES_FEED amlbene_iai_20161217.txt gdcpl3392_uxmow080_ori_inv_ai TUE-SAT 02:03 0.0001 1 No_Records
我正在為Delayed,On_Time和No_Records字段實現着色,並且我在下面的腳本中編寫了腳本,該腳本為我提供了底部輸出(輸出正確但沒有空格分隔)。
awk 'BEGIN {
print "<html>" \
"<body bgcolor=\"#333\" text=\"#f3f3f3\">" \
"<pre>"
}
NR == 1 { print $0 }
NR > 1 {
if ($NF == "Delayed") color="red"
else if ($NF == "On_time") color="green"
else if ($NF == "No_records") color="yellow"
else color="#003abc"
$NF="<span style=\"color:" color "\">" $NF "</span>"
print $0
}
END {
print "</pre>" \
"</body>" \
"</html>"
}
' output.txt > output.html
輸出具有完美的色彩:
| DATE | 飼料名稱| 文件名| 職位名稱| SCHEDULED_TIME | 時間戳| 大小(MB)| COUNT | 狀態|
12月17日INVEST_AI_FUNDS_FEED amlfunds_iai_20161217.txt gdcpl3392_uxmow080_ori_inv_ai On_Time
12月17日INVEST_AI_SECURITIES_FEED amltxn_iai_20161217.txt gdcpl3392_uxmow080_ori_inv_ai On_Time
12月17日INVEST_AI_CONNECTED_PARTIES_FEED amlbene_iai_20161217.txt gdcpl3392_uxmow080_ori_inv_ai No_Records
有4列會自動跳過。 你能幫我這個忙嗎? 非常感謝 !
當您的代碼執行此
$NF="<span style=\"color:" color "\">" $NF "</span>"
print $0
輸入行被重建,因此兩個連續字段之間的多個空格被僅一個空格代替 。
我的解決方案將輸入行復制到變量中,刪除最后一個字段(更改變量的值,而不是輸入行),添加修改后的最后一個字段並打印:
Dummy=$0
sub("[^ ]+$","",Dummy) # removes last field
Dummy=Dummy "<span style=\"color:" color "\">" $NF "</span>"
print Dummy
最好的祝福
更新 :可以通過這種方式減少最后兩行代碼:
print Dummy "<span style=\"color:" color "\">" $NF "</span>"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.