搜索字符串的正则表达式并返回值

搜索字符串的正则表达式并返回值

我需要一个字符串来检查正则表达式,并且匹配结果应该返回到一个变量中。

我逐行读取数据,为此,我必须从该行中提取一些数据。我检查了该行的值,如果为真,我需要将正则表达式匹配结果返回,以将其存储在值中。

所有这些都必须在 bash 中完成。

有没有什么好的方法?

答案1

您可以=~[[ .. ]]条件中使用运算符。圆括号引入捕获组,如果匹配,它们将填充 BASH_REMATCH 数组。

#! /bin/bash
while read line ; do
    if [[ $line =~ d(.)f ]] ; then
        matched=${BASH_REMATCH[1]}
    fi
done < <(printf '%s\n' abc def ghi)
echo "Matched $matched."

相关内容