如何使用sed使标准日期格式字符串中的英国日期?

时间:2013-05-03 08:22:59

标签: sed

字符串Fri May 3 13:50:37 2013必须重新排序为Fri 3 May 2013 13:50:37。如何使用sed

实现这一目标

4 个答案:

答案 0 :(得分:1)

sed不是您想要的正确工具awk

$ echo "Fri May 3 13:50:37 2013" | awk '{print $1,$3,$2,$5,$4}'
Fri 3 May 2013 13:50:37

awk $i中代表i th 字段,因此只需按所需顺序排列字段即可。

答案 1 :(得分:1)

如果date命令可用于日期处理,我会支持date命令。

kent$  date -d"Fri May 3 13:50:37 2013" +"%a%e %b %Y %T"                             │       %M     minute (00..59)
Fri 3 May 2013 13:50:37 

答案 2 :(得分:1)

使用正则表达式中的反向引用并匹配子模式。

sed -E 's/^(...) (...) ([0-9]+)(.*)([0-9]{4})$/\1 \3 \2 \5 \4/'

答案 3 :(得分:0)

这可能适合你(GNU sed):

sed -r 's/(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ([123]?[0-9]) /\2 \1 /g' file