首页 > 解决方案 > 提取两个值之间的特定单词

问题描述

我将一个 html 页面和股票输出卷曲到变量中,所以我尝试在两个值之间提取一个单词,但我失败了。

 </tr> <tr> <td><a <a href="https://test/one/AAA">AAA</a></td>
 <td>Thu Aug 30 09:59:36 UTC 2018</td> <td align="right"> 2247366 </td>
 <td></td> </tr> <tr> <td><a
 href="https://test/one/1.1.22">1.1.22</a></td> <td>Thu Aug 30 09:59:36
 UTC 2018</td> <td align="right"> 5 </td> <td></td> </tr> </table>
 </body> </html>

 content=$(curl -s https://test/one/)
 echo $content | sed -E 's_.*one/([^"]+).*_\1_'

我试图在一个/之后和之前捕捉价值,所以我想提取AAA,1.1.22,......

标签: stringbashsplitextractcut

解决方案


$ ... | sed -E 's_.*one/([^"]+).*_\1_'

AAA
BBB

由于您的内容中有斜线,因此最好选择不同的分隔符,我在这里使用_.

更新 由于您极大地更改了输入文件格式,因此这是更新的脚本

$ echo "$contents" | sed -nE '/one/s_.*one/([^"]+).*_\1_p'
AAA
1.1.22

推荐阅读