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)
有没有可能提取子串直到第一个数字?
请让我知道我想念的。
谢谢
你能不能试试以下。
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)
从命令的输出中提取与正则表达式匹配的子字符串的合适工具是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)