bash - 如何在shell中提取两个单词之间的值
问题描述
我有一个这样的字符串:
line="06:13:41.817 INFO ProgressMeter - Traversal complete. Processed 46942 total variants in 2.2 minutes."
我想提取46942
并放入一个变量。
我试过这个,但它只删除了已处理和总计。我该怎么做?
Var=$(echo $line | sed -e 's/Processed\(.*\)total/\1/')
解决方案
使用参数扩展:
line="06:13:41.817 INFO ProgressMeter - Traversal complete. Processed 46942 total variants in 2.2 minutes."
line=${line#*'Processed '} # Remove from left up to "Processed ".
line=${line%' total'*} # Remove from from " total" up to the end.
推荐阅读
- html - CSS:防止文本溢出div元素
- android - 播放服务广告与 appcompat 冲突
- iis - IIS 多个 URL 重写规则
- c# - SMTP Gmail 在 Localhost 上发送电子邮件,但不是在网站运行后
- php - 如何摆脱远程响应的 JSON 解码失败(错误代码 4)?
- python - pd.merge 生成新的列名
- pandas - 删除 3 个值为 A 的数据框行
- generics - Android Studio 在调用泛型函数时警告删除显式类型参数
- .net-core - 在 .NET Core 中使用 AmazonSimpleSystemsManagementClient 获取 AWS 参数
- javascript - 如何使用codeigniter将foreach复选框值获取到单个变量