我想將一個.txt文件轉換爲.html文件,用於着色目的並通過郵件發送。 直到「MQ-FEEDs:」正如下面提到的例子所述,我纔得到正確的着色。 但其餘選定的案例會被打印兩次,第二次被着色(例如:FAILED FAILED(紅色)),請您幫助我解決這個問題,非常感謝!如何通過awk命令實現着色並通過郵件發送?
輸出我得到:
報告:
|DATE | FEED NAMEs AS OF NOW | AVG_TIME| ARR_TIME |SIZE(MB)|COUNT|STATUS |
Jan 6 CHCK09_20170106.txt 20:46 21:15 0.180 1430 DELAYED
Jan 6 EGLOUT_xml_20170106.txt 15:46 15:46 0.008 247 On_Time
Jan 9 MTS_SOD_20170106.TXT 07:05 00:06 4.005 1 No_Records
MQ-FEEDs:
Jan 09 03:39 MTS_TRANSACTION_FEED MQ 1 3719238761373 SUCCESS SUCCESS
Jan 09 03:37 HOGAN_TRANSACTION_FEED MQ 1 3719235506904 FAILED FAILED
MANUAL-UPLOAD-FEEDs: MANUAL-UPLOAD-FEEDs:
DB-POOL-FEEDs: DB-POOL-FEEDs:
NOTE : Feednames starting with PLUS sign(+) indicates they are in INPROGRESS Directory.
DELAYING-FILES-ARE DELAYING-FILES-ARE
代碼:
#!/bin/ksh
export PATH1="/auto/users/scripts"
awk 'BEGIN {
print "<html>" \
"<body bgcolor=\"#DEF3F0\" text=\"#003abc\">" \
"<pre>"
}
NR == 0 { print $0 }
NR > 0 {
if ($NF == "DELAYED") {color="red"; bold=1; size="15px"; italic=0;}
else if ($NF == "On_Time") {color="green"; bold=1; size="15px"; italic=0;}
else if ($NF == "SUCCESS") {color="green"; bold=1; size="15px"; italic=0;}
else if ($NF == "FAILED") {color="red"; bold=1; size="15px"; italic=0;}
else if ($NF == "MQ-FEEDs:") {color="magenta"; bold=1; size="15px"; italic=0;}
else if ($NF == "MANUAL-UPLOAD-FEEDs:") {color="magenta"; bold=1; size="15px"; italic=0;}
else if ($NF == "DB-POOL-FEEDs:") {color="magenta"; bold=1; size="15px"; italic=0;}
else if ($NF == "No_Records") {color="blueviolet"; bold=0; size="20px"; italic=1;}
else if ($NF == "DELAYING-FILES-ARE") {color="red"; bold=1; size="25px"; italic=0;}
else {color="#003abc"; bold=0; size="25px"; italic=0;}
Dummy=$0
sub("[^ ]+$","",Dummy)
print Dummy "<span style=\"color:" color (bold ? ";font-weight:bold" : "")(size ? ";font-size:size" : "") (italic ? ";font-style:italic" : "") "\">" $NF "</span>"
}
END {
print "</pre>" \
"</body>" \
"</html>"
}
' output.txt > output.html
mail -s "$(echo -e "This is Subject\nContent-Type: text/html")" [email protected] < output.html
[重複的問題?](http://stackoverflow.com/questions/41209524/how-html-works-in-awk-command-in-shell-scripting/41220695#comment69651072_41220695) – Jdamian
@Jdamian,嗨,先生,這個問題就像另一個問題,但這裏的要求有點不同。 – user7268185
@Jdamian,你能幫我解決嗎? – user7268185