在shell脚本中切割部分行/字符串

时间:2014-01-14 14:26:25

标签: bash shell cut

我有以下一行:

Jan 13, 2014 1:01:31 AM

我想删除该行的秒部分。结果应该是:

Jan 13, 2014 1:01 AM

如何做到这一点?

4 个答案:

答案 0 :(得分:2)

使用参数扩展:

t='Jan 13, 2014 1:01:31 AM'
ampm=${t: -2}               # last two characters
echo "${t%:*} $ampm"        # remove everything after the last :

答案 1 :(得分:1)

使用sed:

s='Jan 13, 2014 1:01:31 AM'
sed 's/:[0-9]*\( [AP]M\)/\1/' <<< "$s"
Jan 13, 2014 1:01 AM

答案 2 :(得分:1)

你可以尝试一下:

sed 's/:[^:]* / /'

以你的例子:

kent$ (master|✚2) echo "Jan 13, 2014 1:01:31 AM"|sed 's/:[^:]* / /'
Jan 13, 2014 1:01 AM

答案 3 :(得分:0)

另一种方法,如果你的日期命令是支持-d选项的gnu日期。

$ str="Jan 13, 2014 1:01:31 AM"

$ date -d "$str" +"%b %d, %Y %l:%M %p"

Jan 13, 2014  1:01 AM