重击-提取子字符串直到第一个数字

Hus*_*dan 2 bash shell grep sed

我有以下字符串:

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

我尝试了以下

echo "Test12h" | sed -e 's/[0-9]\*$//' but is not working. 
Run Code Online (Sandbox Code Playgroud)

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

请让我知道我想念的。

谢谢

Rav*_*h13 6

你能不能试试以下。

sed 's/\([^0-9]*\).*/\1/' Input_file
Run Code Online (Sandbox Code Playgroud)

或者

sed 's/[0-9][0-9a-zA-Z]*//' Input_file
Run Code Online (Sandbox Code Playgroud)


ogu*_*ail 6

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

echo "Test12h" | grep -o '^[^[:digit:]]*'
Run Code Online (Sandbox Code Playgroud)

将输出Test

如果Test12h在变量中,则甚至不需要外部实用程序。参数扩展可以轻松解决这一问题,例如:

var='Test12h'
echo "${var%%[[:digit:]]*}"
Run Code Online (Sandbox Code Playgroud)