我编写了以下 bash 脚本将毫秒转换为 Days:Hours:Minutes:Seconds:Milliseconds 以使日志文件更具可读性:
#!/bin/bash
### Constants ###
CON_DAYS=.0000000115741
CON_HOURS=.000000277778
CON_MINUTES=.000066667
CON_SECONDS=.001
### Variables ###
INPUT="$1"
cat $INPUT | awk -v CON_HOURS=$CON_HOURS -v CON_MINUTES=$CON_MINUTES -v CON_SECONDS=$CON_SECONDS -v CON_DAYS=$CON_DAYS '
{ $1=substr($0,0,10) }
{ MILLISECONDS = $1 }
{ DAYS = int(MILLISECONDS * CON_DAYS) }
{ MILLISECONDS = MILLISECONDS - int( DAYS / CON_DAYS ) }
{ HOURS = int(MILLISECONDS * CON_HOURS) }
{ MILLISECONDS = MILLISECONDS - int(HOURS / CON_HOURS) }
{ MINUTES = int(MILLISECONDS * CON_MINUTES) }
{ …Run Code Online (Sandbox Code Playgroud) 在过去的几天里,我一直在编写一个脚本来解析自动生成的帮助台票证并将其内容存储到数据库中。在测试时,我遇到了几封电子邮件,这些电子邮件似乎已被编码并导致脚本失败。下面是其中一个 RFC822 的示例:
"[(b'9255 (RFC822 {12558}', b'发送至: XXXXXXXXX\r\n已接收: 通过 10.220.77.132,SMTP ID g4csp176213vck;\r\n 2014 年 7 月 28 日星期一 09:37:05 -0700 (PDT)\r\nX-已接收:于 10.67.30.130 接收,SMTP ID ke2mr39896936pad.44.1406565425185;\r\n 2014 年 7 月 28 日星期一 09:37:05 -0700 (PDT)\r\n返回路径: \r\ n已接收:来自 XXXXXXXXX (XXXXXXXXX [74.125.149.112])\r\n,由 XXXXXXXXX 发送,SMTP ID 为 yh3si18379315pab.170.2014.07.28.09.37.04\r\n ;\r\n 2014 年 7 月 28 日星期一 09:37:04 -0700 (PDT)\r\n已接收 SPF: 无(XXXXXXXXX: XXXXXXXXX 未指定允许的发件人主机) client-ip=74.125.149.141;\r\n身份验证结果: XXXXXXXXX;\r\n spf=中性 (XXXXXXXXX : XXXXXXXXX 未指定允许的发件人主机) v\r\n已接收:由 XXXXXXXXX ([74.125.148.10]) 使用 SMTP 从 XXXXXXXXX ([74.125.149.141]) 发送;\r\n\tMon, 28 Jul 2014 16:37: 04 GMT\r\n已接收:由 …