将日期转换为特定格式并传递到unix中的文件
我对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
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等更优雅地处理