【发布时间】:2014-01-02 03:32:16
【问题描述】:
我正在尝试将纪元时间转换为字符串,替换时间字符串,但保持字符串的其余部分不变。我已经设法弄清楚了,但是由于我使用了 FS 分隔符正则表达式,我丢失了以前的格式 a=string[space]b=string[space]
通常列出文件:
cat file
输出:
h=10.130.14.28 u="sometext" s=111 X=- t=1386748760 T=132641284 Ts=123 act=1 cat="0x0000000000"
使用下面的 awk 字符串,我已经转换了纪元时间,但我想保持以前的格式。
cat file | awk 'BEGIN {FS= "[\= ]"} {$10="\""strftime("%I:%M:%S%p %Z %m-%d-%G",$10)"\""} {print}'
输出 - 在 a=string[space]b=string[space] 格式中丢失了等号
h 10.130.14.28 u "sometext" s 111 X - t "11:59:20PM PST 12-10-2013" T 132641284 Ts 123 act 1 cat "0x0000000000"
我想我可能需要将 OFS 与 awk 或管道连接到 sed 一起使用,但不太确定该怎么做。当我使用 { OFS "=" } 时,它只是在每个字段分隔符中添加一个 = - 所以我很接近但不完全是我需要的。
cat file | awk 'BEGIN {FS= "[\= ]"} {OFS= "="} {$10="\""strftime("%I:%M:%S%p %Z %m-%d-%G",$10)"\""} {print}'
输出:
h=10.130.14.28=u="sometext"=s=111=X=-=t="11:59:20PM PST 12-10-2013"=T=132641284=Ts=123=act=1=cat="0x0000000000"
我的最终目标是跟踪输出这些字符串的日志并动态转换纪元时间。
【问题讨论】:
标签: bash time awk converter epoch