linux – 用AWK增加日期几天和几个月
使用AWK增加日期
大家好,我需要你的帮助.我有一个文件“test.csv”,我想增加“6个月”和“10天”的日期,以便我得到以下输出: test.csv: "000001","TEST1","2013-05-07 16:02:07","ACTIVE" "000003","TEST3","2013-05-09 16:02:07","ACTIVE" "000004","TEST4","2013-05-10 16:02:07","ACTIVE" "000005","TEST5","2013-05-11 12:02:07","ACTIVE" 输出test-increment-10days.csv: "000001","ACTIVE","2013-05-17 16:02:07" "000003","2013-05-19 16:02:07" "000004","2013-05-20 16:02:07" "000005","2013-05-21 12:02:07" 输出test-increment-6months.csv: "000001","2013-11-07 16:02:07" "000003","2013-11-09 16:02:07" "000004","2013-11-10 16:02:07" "000005","2013-11-11 12:02:07" 我用这个命令试了一下:
但我得到了错误的输出. 测试递增,10days.csv: "000001","2013-05-08 16:02:07" "000003","2013-05-10 16:02:07" "000004","2013-05-11 16:02:07" "000005","2013-05-12 12:02:07" 测试递增,6months.csv: "000001","2013-06-07 16:02:07" "000003","2013-06-09 16:02:07" "000004","2013-06-10 16:02:07" "000005","2013-06-11 12:02:07" “test-increment-10days.csv”中的日期仅增加一天,而“test-increment-6months.csv”中的日期仅增加一个月.希望有人可以提供帮助. 解决方法
试试这个:
awk -F"","" '{cmd="date -d "$(date -d ""$3"")+10days" "+%Y-%m-%d %T"";cmd | getline datum; close(cmd); print $0 ",""datum"""}' test.csv > test-increment-10days.csv 基础日期命令的示例是: date -d "$(date -d '2013-05-07 16:02:07')+10days" "+%Y-%m-%d %T" 有两个日期命令.内部日期创建具有指定值的日期.然后添加10天.外部日期创建一个新的递增日期并对其进行格式化. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |