HTML如何在Shell脚本中的awk命令中工作? [英] How HTML works in awk command in shell scripting?

查看:139
本文介绍了HTML如何在Shell脚本中的awk命令中工作?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个名为"main.ksh"的脚本,该脚本返回"output.txt"文件,我正在通过邮件发送该文件(列表包含50多个记录,例如,我只给出3条记录).

I have a script called "main.ksh" which returns "output.txt" file and I am sending that file via mail (list contains 50+ records, I just give 3 records for example).

我得到的邮件输出是:(10列)

mail output I am getting is: (10 cols)

DATE  FEED    FILE_NAME   JOB_NAME SCHEDULED TIME SIZE COUNT STATUS 
Dec 17 INVEST     iai     guxmow080 TUE-SAT 02:03 0.4248 4031 On_Time
Dec 17 SECURITIES amltxn  gdcpl3392 TUE-SAT 02:03 0.0015 9    Delayed
Dec 17 CONNECTED amlbene  gdcpl3392 TUE-SAT 02:03 0.0001 1    No_Records

具有完美色彩的输出:(仅6列)

output with perfect coloring: (6 cols only)

DATE  FEED    FILE_NAME   JOB_NAME SCHEDULED TIME SIZE COUNT STATUS 
Dec 17 INVEST     iai     guxmow080 On_Time(green color)
Dec 17 SECURITIES amltxn  gdcpl3392 Delayed(red color)
Dec 17 CONNECTED amlbene  gdcpl3392 No_Records(yellow color)

我正在为Delayed,On_Time和No_Records字段实现着色,我写了下面的脚本,该脚本为我提供了底部输出.

I am implementing coloring for Delayed, On_Time and No_Records field and I wrote below script which gives me bottom output.

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"

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

有4列会自动跳过.

推荐答案

|日期| feed_names |文件名| job_names |预定时间|时间戳|大小|计数|状态|

| date | feed_names | file_names | job_names | scheduled_time| timestamp| size| count| status |

Dec 19 ISS_BENEFICIAL_OWNERS_FEED amlcpbo_iss_20161219.txt gdcpl3392_uxmow080_ori_isz_dat WEEK_DAYS 00:03 9.3734 34758 On_Time

Dec 19 ISS_BENEFICIAL_OWNERS_FEED amlcpbo_iss_20161219.txt gdcpl3392_uxmow080_ori_isz_dat WEEK_DAYS 00:03 9.3734 34758 On_Time

12月19日ISS_INVESTORS_FEED amlinvest_iss_20161219.txt gdcpl3392_uxmow080_ori_isz_dat WEEK_DAYS 00:01 0.0283 82 On_Time

Dec 19 ISS_INVESTORS_FEED amlinvest_iss_20161219.txt gdcpl3392_uxmow080_ori_isz_dat WEEK_DAYS 00:01 0.0283 82 On_Time

12月19日ISS_TRANSACTIONS_FEED amltran_iss_1_20161219.txt gdcpl3392_uxmow080_ori_isz_dat WEEK_DAYS 00:12 14.022 36532延迟

Dec 19 ISS_TRANSACTIONS_FEED amltran_iss_1_20161219.txt gdcpl3392_uxmow080_ori_isz_dat WEEK_DAYS 00:12 14.022 36532 DELAYED

Dec 19 ISS_TRANSACTIONS_FEED amltran_iss_5_20161219.txt gdcpl3392_uxmow080_ori_isz_dat WEEK_DAYS 00:23 0.0010 3 DELAYED

Dec 19 ISS_TRANSACTIONS_FEED amltran_iss_5_20161219.txt gdcpl3392_uxmow080_ori_isz_dat WEEK_DAYS 00:23 0.0010 3 DELAYED

12月19日IBS_CUSTOMER_FEED ibscust_aml _ *** _ 20161219.txt gdcpl3392_uxmow080_ori_sfp_ibc WEEK_DAYS(11 out_of_11)-NA- Arrivived

Dec 19 IBS_CUSTOMER_FEED ibscust_aml_***_20161219.txt gdcpl3392_uxmow080_ori_sfp_ibc WEEK_DAYS (11 _out_of_11) -NA- ARRIVED

12月19日IBS_DDA_NOSTRO_ACCOUNT_FEED ibsacct_aml _ *** _ 20161219.txt gdcpl3392_uxmow080_ori_sfp_ibc WEEK_DAYS(44 _out_of_44)-NA-已收到

Dec 19 IBS_DDA_NOSTRO_ACCOUNT_FEED ibsacct_aml_***_20161219.txt gdcpl3392_uxmow080_ori_sfp_ibc WEEK_DAYS (44 _out_of_44) -NA- ARRIVED

12月19日GP_ _TRANSACTIONS_FEED amltrans _ _20161219.txt gdcpl3392_uxmow080_ori_sfp_glo WEEK_DAYS(3 _out_of_30)-NA- RARIVED

Dec 19 GP__TRANSACTIONS_FEED amltrans__20161219.txt gdcpl3392_uxmow080_ori_sfp_glo WEEK_DAYS (3 _out_of_30) -NA- ARRIVED

但是当我尝试通过使用以下命令按顺序打印时
awk'{printf(%-5s%s \ t%-33s%-35s%-39s%s \ t%s%-3s \ t%s \ t%s \ n",$ 1,$ 2,$ 3,$ 4 ,$ 5,$ 6,$ 7,$ 8,$ 9,$ 10)}'output.txt,我得到了顺序格式的输出 但是跳过了4个列请建议!!!

But when I am trying to print in a sequential order by using below command
awk '{printf("%-5s%s\t%-33s%-35s%-39s%s\t%s%-3s\t%s\t%s\n", $1,$2,$3,$4,$5,$6,$7,$8,$9,$10)}' output.txt, I am getting the output in a sequential format but 4 cols are skipped. Kindly suggest!!!

|日期| feed_names |文件名| job_names |预定时间|时间戳|大小|计数|状态|

| date | feed_names | file_names | job_names | scheduled_time| timestamp| size| count| status |

12月19日ISS_BENEFICIAL_OWNERS_FEED amlcpbo_iss_20161219.txt gdcpl3392_uxmow080_ori_isz_dat On_Time

Dec 19 ISS_BENEFICIAL_OWNERS_FEED amlcpbo_iss_20161219.txt gdcpl3392_uxmow080_ori_isz_dat On_Time

12月19日ISS_INVESTORS_FEED amlinvest_iss_20161219.txt gdcpl3392_uxmow080_ori_isz_dat On_Time

Dec 19 ISS_INVESTORS_FEED amlinvest_iss_20161219.txt gdcpl3392_uxmow080_ori_isz_dat On_Time

12月19日ISS_TRANSACTIONS_FEED amltran_iss_1_20161219.txt gdcpl3392_uxmow080_ori_isz_dat已延迟

Dec 19 ISS_TRANSACTIONS_FEED amltran_iss_1_20161219.txt gdcpl3392_uxmow080_ori_isz_dat DELAYED

12月19日ISS_TRANSACTIONS_FEED amltran_iss_5_20161219.txt gdcpl3392_uxmow080_ori_isz_dat已延迟

Dec 19 ISS_TRANSACTIONS_FEED amltran_iss_5_20161219.txt gdcpl3392_uxmow080_ori_isz_dat DELAYED

12月19日IBS_CUSTOMER_FEED ibscust_aml _ *** _ 20161219.txt gdcpl3392_uxmow080_ori_sfp_ibc已到达

Dec 19 IBS_CUSTOMER_FEED ibscust_aml_***_20161219.txt gdcpl3392_uxmow080_ori_sfp_ibc ARRIVED

12月19日IBS_DDA_NOSTRO_ACCOUNT_FEED ibsacct_aml _ *** _ 20161219.txt gdcpl3392_uxmow080_ori_sfp_ibc已到达

Dec 19 IBS_DDA_NOSTRO_ACCOUNT_FEED ibsacct_aml_***_20161219.txt gdcpl3392_uxmow080_ori_sfp_ibc ARRIVED

12月19日GP_ _TRANSACTIONS_FEED amltrans _ _20161219.txt gdcpl3392_uxmow080_ori_sfp_glo YET_TO_RECEIVE

Dec 19 GP__TRANSACTIONS_FEED amltrans__20161219.txt gdcpl3392_uxmow080_ori_sfp_glo YET_TO_RECEIVE

这篇关于HTML如何在Shell脚本中的awk命令中工作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆