【发布时间】:2012-01-27 07:37:17
【问题描述】:
我想转换一个日期
12-24-11 13:37
(MM-DD-YY MM:SS) 到
11-12-24 13:37
(YY-MM-DD MM:SS)
有没有办法做到这一点?
【问题讨论】:
我想转换一个日期
12-24-11 13:37
(MM-DD-YY MM:SS) 到
11-12-24 13:37
(YY-MM-DD MM:SS)
有没有办法做到这一点?
【问题讨论】:
sed 来救援:
$ echo 12-24-11 13:37 | sed 's#^\([0-9\-]\{5\}\)-\([0-9]\{2\}\)#\2-\1#'
11-12-24 13:37
【讨论】:
【讨论】:
date 可以只打印当前日期,或设置一个新日期。 OP 希望格式化现有日期。
date可以通常打印任意日期。 GNU 日期为此使用 -d 标志,BSD 日期使用 -r 和 -v。
不需要 sed。
#!/bin/sh
input="12-24-11 13:37";
month="${input%%-*}";
input="${input#*-}";
day="${input%%-*}";
input="${input#*-}";
year="${input%% *}";
input="${input#* }";
echo "$year-$month-$day $input";
但如果您确实想使用外部工具,不妨使用带有 short 正则表达式的工具
echo 12-24-11 13:37 | perl -pe 's/(.+)-(.+) /$2-$1 /'
【讨论】:
$2 和 $1,否则它就是一个 NOP。