bash - 提取子字符串直到第一个数字
问题描述
我有以下字符串:
test1234a
或者test1234
例如,我只想test
从该字符串中提取。
我尝试了以下
echo "Test12h" | sed -e 's/[0-9]\*$//' but is not working.
有没有可能提取子字符串直到第一个数字?
请让我知道我想念什么。
谢谢
解决方案
从命令输出中提取与正则表达式匹配的子字符串的正确工具是grep
. 喜欢,
echo "Test12h" | grep -o '^[^[:digit:]]*'
将输出Test
.
如果Test12h
在变量中,您甚至不需要外部实用程序;参数扩展可以轻松处理,例如:
var='Test12h'
echo "${var%%[[:digit:]]*}"
推荐阅读
- powershell - 如何在 Powershell 中测试用户和密码 HTTP 身份验证 NTLM
- java - java process builder执行mutt命令,主题和附件名称具有非ascii字符
- reactjs - 使用 TypeScript 创建 React 上下文以共享状态
- report - 如何解决 Qweb 报告中的重叠问题?
- laravel - 如何伪造社交名流`userFromToken`方法进行测试?
- css - 带有 css 模块的 NextJS 条件类给出控制台警告
- discord.py - 如果某个用户离线,我如何发送消息?
- linux - 如何从 git 中删除凭据
- clojurescript - ClojureScript:如何访问(不仅仅是打印)HTTP GET 请求的结果
- java - getIntValue 如何返回 Integer 值?有什么循序渐进的解释吗?