Shell脚本返回多个数据文件的date_time列的范围(最小值和最大值)



我有多个数据文件,"|"分隔,我想用shell脚本获取所有数据文件的日期列范围(我是shell编程的新手(。数据没有标头。

这是我的一行数据,即第11列中的date_time列。

2546|Sprint||0||0|0||4|0|2015-10-01 05:49:51

我写了一个代码,但只是从中得到了胡言乱语的结果:

awk -F"[-,:. ]" '
BEGIN{
min_ext="99999999999999999999"
}
{
ext=$11$12$13$14$15$116$17; 
if(min_ext>ext){min_ext=ext}
if(max_ext<ext){max_ext=ext}
}

END{
print "min ext "min_ext
print "max ext "max_ext
}' data.csv

没有给我们提供太多数据…:(虚构输入:

cat max
2546|Sprint||0||0|0||4|0|2015-10-02 05:49:51
2547|Sprint||0||0|0||4|0|2015-10-01 05:49:51
2548|Sprint||0||0|0||4|0|2015-10-06 05:49:51

部分输出:

sort -t'|' -k11,11 max | awk 'NR==1;{last=$0}END{print last}' 
2547|Sprint||0||0|0||4|0|2015-10-01 05:49:51
2548|Sprint||0||0|0||4|0|2015-10-06 05:49:51

编辑1:咯咯笑一个只有awk的解决方案:

awk -F'|' '{i[$11]=$0} END{c=asorti(i,o);print i[o[1]];print i[o[c]]}' max
2547|Sprint||0||0|0||4|0|2015-10-01 05:49:51
2548|Sprint||0||0|0||4|0|2015-10-06 05:49:51

最新更新