我需要转换日期,例如
2012-06-01T19:05:00+02:00
这样的事情
01-06-2012 19:05
理想情况下使用 sed 或 awk 。我该怎么做?
答案 0 :(得分:5)
这可以在不使用sed或awk的情况下完成,因为bash本身可以执行大多数必需的字符串替换。具体来说,您只需要:
其余日期格式可由日期命令处理。
$ date_string='2012-06-01T19:05:00+02:00'
$ date_string="${date_string/T/ }"
$ date_string="${date_string/+*/}"
$ date -d "$date_string" '+%d-%m-%Y %H:%M'
01-06-2012 19:05
答案 1 :(得分:2)
echo "2012-06-01T19:05:00+02:00"|sed 's/\(.*\)T\([0-9]*:[0-9]*\).*/\1 \2/'
2012-06-01 19:05
解释它的作用:
答案 2 :(得分:2)
date -d "$(echo '2012-06-01T19:05:00+02:00' | sed 's/T/ /; s/+.*//')" '+%d-%m-%Y %H:%M'