在BASH中使用正则表达式提取数字

时间:2013-03-22 16:23:29

标签: regex bash

我有一个运行像
这样的命令的脚本 $exiftool 3PDki5ZyhBgnoTEUu4JP.mov|grep -m1 Duration 并根据文件我得到这些结果

Duration                        : 01:25  
Duration                        01:25  
Duration                        01.25  

我希望能够从这些字符串中仅提取时间,即 01:25 1.25

2 个答案:

答案 0 :(得分:4)

试试这个:

....|grep -o "[^ ]*$"

或这短暂的:

...|awk '$0=$NF'

答案 1 :(得分:0)

这对我有用。 awk只占用空格后的最后一列,我添加了tr,以防你想要真正的完美主义者并且只有hh:mm格式(而不是hh.mm)

exiftool 3PDki5ZyhBgnoTEUu4JP.mov|grep -m1 Duration | awk '{ print $NF }' | tr '.' ':'