awk中的strftime浅析(含小数)

概要

在文件数据处理中,awk是常用的unix工具命令。如果需要将unix时间戳(1687057855)转换成标准时间格式(06/18/23 13:07:28),可以使用其自带的strftime函数。

awk命令

awk -F',' '{printf("%s",strftime(%T,$1))}' xxx.log // xxx.log是csv文件, 同时假设第一列是unix时间戳

对于打印日期格式的说明符

%Y带世纪的年份(如2018)
%m用十进制表示的月数( 如09)
%d用十进制表示的月份中的某一天( 如20)
%H用十进制表示的24 小时制的小时数以( 如20)
%M用十进制表示的分钟数( 如15)
%S用十进制表示的秒数(如15)

注:上面只是最常用的格式符,还有类似%T=%H:%M:%S,详细可查阅其他资料

对于小数部分的处理

awk没有处理小数的打印格式,需要通过其它方式处理

awk -F',' '{printf("%s.%03d",strftime(%T,$1),$1*1000/%1000)}' xxx.log // %03d表示保留三位数字,若不满3位前面补零

节选打印

有时处理的数据量太大,需要节选打印部分行,这时可以通过NR(文件行数)来辅助处理

awk -F',' 'NR%10==0{printf("%s.%03d",strftime(%T,$1),$1*1000/%1000)}' xxx.log // 每十行转换打印一行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值