shell - 文件按照时间进行分割

文件时间进行分割

  • 在shell命令行输入命令调用awk

测试数据:

数据格式:tab键分割,共7个字段

1	2019-03-11 21:05:07	2019-03-11 21:05:07	209.58.131.47	57103	122.192.12.71	22270
2	2019-03-11 21:05:07	2019-03-11 21:05:05	108.61.216.200	24443	222.68.159.73	64351
3	2019-03-11 21:05:07	2019-03-11 21:05:05	52.231.161.107	12298	223.72.79.114	24822
    ......	

任务描述:根据第二个字段(时间戳格式),把每分钟的数据单独抽取出来,分别写到对应文件中

踩坑:踩坑:awk格式化输出中,系统变量OFS:输出域分隔符,默认是空格键,不是我们想要的tab键

在shell命令行输入命令调用awk

FILENAME:当前文件名
FS:字段分隔符,默认是空格键
NR:当前记录数
NF:当前记录中的域数量

[hadoop@slave107 suiji]$ awk 'BEGIN {FS="\t";OFS="\t"} {if(NF==7) print $0 >> "/home/hadoop/txt/yk/random/test/"substr($2,0,16)}' suiji_all

//生成的文件名
2019-03-11 21:05  
2019-03-11 21:06 
2019-03-11 21:07  
......

你可能感兴趣的:(linux)