在bash特定子字符串后提取令牌 [英] Extract token after particular substring in bash

查看:148
本文介绍了在bash特定子字符串后提取令牌的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我有一个bash脚本包含几行的字符串变量:

Suppose I have a string variable in a bash script that contained several lines:

blah blah blah
...
...
an interesting parameter: 12345 some other useless stuff...
...
...

我想从这个字符串中提取12345。我试图寻求新的方式使用'一个有趣的参数:'作为一个分隔符,但我不能完全得到它的工作。是否有这样做的一个干净的方式?

I want to extract 12345 from this string. I have tried to look for ways to use 'an interesting parameter:' as a "delimeter" but I couldn't quite get it to work. Is there a clean way of doing this?

推荐答案

庆典支持正前pression匹配,而无需使用外部程序。

bash supports regular expression matching without using external programs.

$ str='
blah blah blah
...
...
an interesting parameter: 12345 some other useless stuff...
...
...'
$ [[ $str =~ an\ interesting\ parameter:\ ([[:digit:]]+) ]]

$ echo ${BASH_REMATCH[1]}
12345

阵列 BASH_REMATCH 包含元素0和捕获的分组全场比赛(左到右的顺序)在随后的元素。

The array BASH_REMATCH contains the full match in element 0 and the captured subgroups (in left-to-right order) in subsequent elements.

这篇关于在bash特定子字符串后提取令牌的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆