【发布时间】:2016-07-08 09:06:07
【问题描述】:
下面给出的是文件内容和使用的 awk 命令:
输入文件:in_t.txt
1,ABC,SSS,20-OCT-16,4,1,0,5,0,0,0,0
2,DEF,AAA,20-JUL-16,4,1,0,5,0,0,0,0
预期的输出文件:
SSS|2016-10-20,5
AAA|2016-07-20,5
我尝试了以下命令:
awk -F , '{print $3"|"$(date -d 4)","$8}' in_t.txt
得到的输出文件为:
SSS|20-OCT-16,5
AAA|20-JUL-16,5
我只想知道如何使用相同的 awk 命令格式化日期。尝试过
awk -F , '{print $3"|"$(date -d 4)","$8 +%Y-%m-%d}' in_t.txt
出现语法错误。可以请我帮忙吗?
【问题讨论】:
-
在
awk中执行此操作。这可能比为每一行调用date更有效。 -
但是我该怎么做呢?我想格式化日期,但同样不起作用。
-
使用
split对输入的日期进行分割,然后将月份名称转换为数字 -
$(date -d 4)没有调用date命令,也没有在 awk 程序之外做任何事情。正如您在输出中看到的那样,它只是将两个空字符串与“4”连接起来,并使用$获取第 4 个字段的值。 -
You've asked 40 questions on this forum so far。为什么你现在跑来跑去在多个答案下发布相同的评论,甚至没有一个在你的评论中提供代码,并且在这个包含新问题的 5 年老问题下,而不是简单地问你的第 41 个问题?这比平常的chameleon questions还要糟糕!如果您有后续问题要问,只需发布一个问题,如果有用,请参考您现有的问题