我有一个包含特定日期格式的记录太多的日期文件,如下面的第5列:
9010146679 20170129 26079 2/6/2017 2/11/2017 1002
9010149451 20170129 26079 2/6/2017 2/13/2017 1002
9010149451 20170129 24079 2/6/2017 2/14/2017 1005
9010156092 20170129 26079 2/6/2017 2/15/2017 1002
我想将第5列日期格式更改为第二列中的格式。 从逻辑上讲,我的意思如下:
awk '{for (i=11;i<=15;i++) { if (5$=="2/i/2017") sub("2/i/2017","201702i") }}' file.txt
我找不到合适的语法。有人可以帮忙吗?
答案 0 :(得分:2)
awk '{split( $5, T, /\//); $5 = T[3] sprintf( "%0.2d", T[1]) sprintf( "%0.2d", T[2]); print}' YourFile
使用来自字段5($ 5)的直接信息放入一个数组(拆分)并使用2位数字格式重写为月和日(sprintf)in new&#34; reverse&#34;格式
我为每天编号,而不仅仅是11 - &gt; 15假设您提供样本而非约束