$ cat file
1234567890
$ awk -vFIELDWIDTHS="1 2 3 4 5" -vOFS="|" 'NF=NF' file
1|23|456|7890|
[解析]
FIELDWIDTHS 字段宽度列表(用空格键分隔)。比较冷门少见。
echo "20101018000000"|awk -vFIELDWIDTHS="4 2 2 2 2 2" 'NF=NF{print mktime($0)}'
[解析]
设置好字段分割刚好用来取时间戳。
实例:
时间戳取24号18到22点的数据,并记录数据次数
echo '111|12|20171024202020
121|12|20171024202020
111|12|20171024181020
121|13|20171024231020' |awk -vFIELDWIDTHS="3 12 2 4" '$3>=18&&$3<=22{a[$1]++}END{for(i in a)print i"|"a[i]}'
111|2
121|1