首页 > 解决方案 > 提取子字符串直到第一个数字

问题描述

我有以下字符串:

test1234a或者test1234例如,我只想test从该字符串中提取。

我尝试了以下

echo "Test12h" | sed -e 's/[0-9]\*$//' but is not working. 

有没有可能提取子字符串直到第一个数字?

请让我知道我想念什么。

谢谢

标签: bashshellsedgrep

解决方案


从命令输出中提取与正则表达式匹配的子字符串的正确工具是grep. 喜欢,

echo "Test12h" | grep -o '^[^[:digit:]]*'

将输出Test.

如果Test12h在变量中,您甚至不需要外部实用程序;参数扩展可以轻松处理,例如:

var='Test12h'
echo "${var%%[[:digit:]]*}"

推荐阅读