bash - 如何在bash中捕获特定关键字前面的数字
问题描述
想象以下字符串:
<tr><td>12,3</td><td>deg</td><td>23,4</td><td>humi</td><td>34,5</td><td>press</td></tr>
在 bash 中,如何23.4
根据其后跟的条件提取humi
?
解决方案
grep -o
适用于这类事情。我确信一个 sed 命令的性能会比两个 grep 更好,但这很少是一个严重的问题。
X='<tr><td>12,3</td><td>deg</td><td>23,4</td><td>humi</td><td>34,5</td><td>press</td></tr>'
echo $X | grep -o '[0-9,.]*</td><td>humi' | grep -o '[0-9,.]*'
# Result: 23,4
您还可以通过管道tr , .
获取英文数字格式。
推荐阅读
- node.js - 如何在 node.js 中包含多个 js 文件?
- oracle - 如何找到最大值,任何剩余的最大值和之前未使用的最后剩余最大值
- android - 为注释元素找到错误类型的数据 public abstract int[] butterknife.OnClick.value()
- typescript - 无法传递类型解析为不同重载的联合类型
- ruby - 在没有“下一步”的情况下实施“救援”
- javascript - 我在 Woocommerce 的结帐页面上的 Javascript 滚动功能没有移动到正确的位置
- spring - 使用摘要过滤器的 Spring-boot 摘要身份验证失败
- sql-server - 当源不匹配时从单独的表中更新列
- multithreading - 同步 Open MP 线程的成本
- google-bigquery - 如何选择 LEN > 0 的所有项目