字符串Fri May 3 13:50:37 2013
必须重新排序为Fri 3 May 2013 13:50:37
。如何使用sed
?
答案 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