将日期转换为特定格式并传递到unix中的文件

将日期转换为特定格式并传递到unix中的文件,unix,Unix,我对unix有要求。我有一个文件,其中包含工作流的结束时间,如下所示: End Time:[Thu oct 05:12:12:12 2017] 我必须将其转换为mm dd yyy hh24:mi:ss并写入另一个文件 请让我们知道我该怎么做 谢谢, Amit类似于 该公司的结束时间:\[\w{3}\s(\w{{{{{3})s([0-9{{{3{{{{3})s([0-9{{1,2}::([0-9名名名名名录录录录文件名名名名名名名名名名名录录录录录录录录)的最后时间:::::::;sed-sed

我对unix有要求。我有一个文件,其中包含工作流的结束时间,如下所示:

End Time:[Thu oct 05:12:12:12 2017]
我必须将其转换为mm dd yyy hh24:mi:ss并写入另一个文件

请让我们知道我该怎么做

谢谢, Amit

类似于

该公司的结束时间:\[\w{3}\s(\w{{{{{3})s([0-9{{{3{{{{3})s([0-9{{1,2}::([0-9名名名名名录录录录文件名名名名名名名名名名名录录录录录录录录)的最后时间:::::::;sed-sed-e-e-e-e的结束时间::::::;sed-e-e-e-e-e-e的结束时间:::::[录录录录录录录录录的结束时间:::::[录录录录录录录录录录录录录录录录录录录录录录录录录录录录录录录录录录录录录录录录录录录录录录的s-e-e-e-e-e-e-e的结束时间::::::文件名;s/jul/07/ig;s/aug/08/ig;s/sep/09/ig;s/oct/10/ig;s/nov/11/ig;s/dec/12/ig'>输出文件名 这分为三个命令。第一个命令是
grep
以提取所需时间的行。第二个命令是
sed
以将日期重新排列为输出格式,但请注意,月份仍然是一个字符串。第三个命令是另一个
sed
调用,它将月份名称替换为一个数字

注意事项:

  • 上面的正则表达式相当严格,在简单的偏差上会失败
  • 无需将regex内容拆分为两个
    sed
    调用,这可以在一个调用中处理
  • 或者就这一点而言,整个过程可以用python、perl等更优雅地处理

非常感谢@BurnsBA。让我检查一下。