【发布时间】:2014-01-16 20:04:44
【问题描述】:
我有以下行:
Jan 13, 2014 1:01:31 AM
我想删除该行的秒部分。结果应该是:
Jan 13, 2014 1:01 AM
如何做到这一点?
【问题讨论】:
-
如果你说明你是如何获得这样的行会更好,因为我们可以尝试改变
date的输出格式。
我有以下行:
Jan 13, 2014 1:01:31 AM
我想删除该行的秒部分。结果应该是:
Jan 13, 2014 1:01 AM
如何做到这一点?
【问题讨论】:
date的输出格式。
使用参数扩展:
t='Jan 13, 2014 1:01:31 AM'
ampm=${t: -2} # last two characters
echo "${t%:*} $ampm" # remove everything after the last :
【讨论】:
使用 sed:
s='Jan 13, 2014 1:01:31 AM'
sed 's/:[0-9]*\( [AP]M\)/\1/' <<< "$s"
Jan 13, 2014 1:01 AM
【讨论】:
你可以试试这个:
sed 's/:[^:]* / /'
用你的例子:
kent$ (master|✚2) echo "Jan 13, 2014 1:01:31 AM"|sed 's/:[^:]* / /'
Jan 13, 2014 1:01 AM
【讨论】:
另一种方式,如果你的日期命令是支持 -d 选项的 gnu date。
$ str="Jan 13, 2014 1:01:31 AM"
$ date -d "$str" +"%b %d, %Y %l:%M %p"
Jan 13, 2014 1:01 AM
【讨论】: