我在unix中有要求。我有一个文件,其工作流程的结束时间如下所示:
End Time:[Thu oct 05:12:12:12 2017]
我必须将此转换为mm-dd-yyy hh24:mi:ss并写入另一个文件。
请告诉我们该怎么做?
谢谢, 阿米特
答案 0 :(得分:1)
像
这样的东西grep input_filename -e "End Time:" | sed -E 's/End Time:\[\w{3}\s(\w{3})\s([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})\s([0-9]{4}).*$/\1-\2-\6 \3:\4:\5/' | sed 's/jan/01/ig; s/feb/02/ig; s/mar/03/ig; s/apr/04/ig; s/may/05/ig; s/jun/06/ig; s/jul/07/ig; s/aug/08/ig; s/sep/09/ig; s/oct/10/ig; s/nov/11/ig; s/dec/12/ig' > output_filename
这分为三个命令。首先是grep
以提取您需要的时间。第二个是sed
将日期重新排列为输出格式,但请注意月份仍然是一个字符串。第三个命令是另一个sed
调用,它将月份名称替换为数字。
警告:
sed
调用,这可以在一个