该字符串Fri May 3 13:50:37 2013
必须重新排序为Fri 3 May 2013 13:50:37
. 如何使用 来实现这一点sed
?
问问题
102 次
4 回答
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
Inawk
$i
代表第 i个字段,因此只需按所需顺序排列字段。
于 2013-05-03T08:26:49.683 回答
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
于 2013-05-03T08:31:42.263 回答
1
在正则表达式中使用反向引用并匹配子模式。
sed -E 's/^(...) (...) ([0-9]+)(.*)([0-9]{4})$/\1 \3 \2 \5 \4/'
于 2013-05-03T08:50:18.407 回答
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
于 2013-05-03T11:02:48.967 回答