首页 > 解决方案 > 如何在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

标签: bashsed

解决方案


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 , .获取英文数字格式。


推荐阅读