簡體   English   中英

Unix Shell腳本中的HTML具有順序輸出

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM