2017-05-24 46 views
-1

我有以下文字:正则表达式的UNIX开关NUM

(took 1.22 seconds) 

需要使用正则表达式替换时有发生。 我想要的字符串是:

(took TIME seconds) 

我该怎么办?

我正在使用的Unix类似以下的脚本:

's/user detected .*$/user detected USER/g' 
+0

您正在使用哪种编程语言? – Mistalis

+0

unix中的脚本:类似于下面的 – Tehila

+0

的用户检测到的。* $/user detected USER/g' – Tehila

回答

0

您可以使用以下任何sed的解决方案:

s='took 1.22 seconds' 
echo $s | sed 's/ [0-9]*\.\?[0-9]\{2\}/TIME /g' 
echo $s | sed -E 's/[0-9]*\.?[0-9]{2}/TIME/g' 
echo $s | sed -E 's/\b[0-9]*\.?[0-9]{2}\b/TIME/g' 

online demo

的模式意味着:

  • [0-9]* - 零个或更多个数字
  • \.? - 的1或0的点
  • [0-9]{2} - 2位数字
  • \b - 字边界。