awk提供了两个函数来获取时间和格式化时间戳:systime和strftime。
systime函数
systime函数将返回自1970 年1月l日以来经过的时间(按秒计算)。
systime
$ awk
'BEGIN{now=systime();print now}'
939515282
说明:
systime函数的返回值被赋给一个
用户自定义的变量
:now。这个值等于从1970年1月1日以来所累计的总时间(单位为秒)。
strftime函数
strftime函数使用C库中的strftime函数对时间进行格式化。格式形式可以为%T %D等(参见下表)。时间戳的格式和systime函数返回值所采用的格式一样,如果不使用时间戳,则以当前的时间为默认时间。
日期格式
|
定义
|
%a
|
简写的星期名(如Sun)
|
%A
|
完整的星期名(如Sunday)
|
%b
|
简写的月名(如Oct)
|
%B
|
完整的月名(如October)
|
%c
|
本地的日期和时间(如Sun Oct 17 15:26:46 2014)
|
%d
|
用十进制表示的月份中的某一夭( 如17)
|
%D
|
采用10/17/14 形式表示的日期
|
%e
|
月份中的某一夭,如果只有一位数字,用空格填充份
|
%H
|
用十进制表示的24 小时制的小时数以( 如15)
|
%I
|
用十进制表示的12 小时制的小时数( 如03)
|
%j
|
用十进制表示的从当年1 月1 日以来的天数。(如290)
|
%m
|
用十进制表示的月数( 如10)
|
%M
|
用十进制表示的分钟数( 如26)
|
%p
|
采用12 小时制表示的AM/PM 表示法(如PM)
|
%S
|
用十进制表示的秒数(如26)
|
%U
|
用十进制表示的一年中的周数(星期日作为一周的开始)(如42)
|
%w
|
用十进制表示的星期数(如星期日为0)
|
%W
|
用十进制表示的一年中的周数(星期一作为一周的开始)(如41)
|
%x
|
本地日期(如 10/17/14)
|
%X
|
本地时间(如15:26:26)
|
%y
|
用十进制表示的年份(采用两位十进制表示,如14)
|
%Y
|
带世纪的年份(如2004)
|
%Z
|
时间区(如PDT)
|
%%
|
一个百分号字符标记(%)
|
systime
[
format specification
,
timestamp
$ awk
'BEGIN{now=strftime("%D",systime()); print now)'
$ awk
'BEGIN {now=strftime("%T"); print now)'
58
:03
$ awk
'BEGIN{now=strftime("%m/%d%y"); print now}'
说明:
strftime函数通过一个参数所给出的格式来设置时间和日期的形式。如果以systime作为第2个参数,或者不带第2个参数,将使用本地的当前时间。如果带了第2个参数,则它必须与systime函数的返回值格式一致。
参考资料:http://www.linuxawk.com/jiaocheng/353.html
awk提供了两个函数来获取时间和格式化时间戳:systime和strftime。systime函数 systime函数将返回自1970 年1月l日以来经过的时间(按秒计算)。格式systime()范例$ awk 'BEGIN{now=systime();print now}'939515282说明:systime函数的返回值被赋给一个
文件内容格式:
[root@UnicodeC_178 ~/SMS]# cat Vsim.txt
1queqo13nas_id91|1632837848000|1632842048000|254990|JP
2queqo13nas_id91|1632837848020|1632842058000|254990|JP
3queqo13nas_id91|1632837848030|1632842068000|254990|JP
4queqo13nas_id91|1632837848040|163284207800
任务就是将上面的日期转换成YYMMDD格式。
例如第一个的17-MAR-20,则是转换成20200317
那么需求就很简单了,将中间的英文提取转换成数字月份,然后重新排列组合就行了。
转换后的结果:
代码如下:
for tmp in `cat file |
awk
-F '[,]' '{print $3}' `;
month=`echo ...
awk
是一种文本处理工具,它可以读取文本文件并对其中的文本进行分析、转换和打印等操作。而 printf 是
awk
中的一个
函数
,它可以按照指定格式输出文本或变量的值。printf
函数
的基本语法为:
printf format, item1, item2, ...
其中,format 是格式控制字符串,用于指定输出的格式;item1, item2, ... 是待输出的变量或文本。
printf
函数
可以根据格式控制字符串中的格式标识符,将变量或文本输出为不同的格式,比如浮点数、整数、字符串等。除了格式控制字符串以外,printf
函数
还支持一些其他的控制选项,比如指定输出宽度、填充字符、左对齐或右对齐等。在
awk
中,printf
函数
通常与其他命令结合使用,用于将处理结果输出到标准输出或其他文件中。