我有以下文字:
(took 1.22 seconds)
需要使用正则表达式将时间替换为TIME。 我希望字符串为:
(took TIME seconds)
我该怎么办?
我在Unix中使用的脚本类似于以下内容:
's/user detected .*$/user detected USER/g'
答案 0 :(得分: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
- 字边界。