条件:
样本数据expr.txt
其列数未知
第一列是年份日期,第二列是时间,要求把第一二列整体代表的所在日期时间提前7583580秒(大约87.7天) 其他列原样输出
$ cat expr.txt
2016-11-04 12:03 1478232180 col2 col2 col3
2016-08-08 17:30 1470648600 col2 none
例子如下
$ awk '{gsub(/-/," ",$1 );gsub(/:/," ",$2);d=$1" "$2" 00";d=mktime(d);d=d + 7583580;d=strftime("%Y-%m-%d %H:%M",d);out="";for (i=3;i<=NF;i++){out=out" "$i};print d" "out }' expr.txt
2017-01-31 06:36 1478232180 col2 col2 col3
2016-11-04 12:03 1470648600 col2 none
分析见博客