在正则表达式中使用变量

use*_*694 5 bash shell-script regular-expression

如何在正则表达式中使用变量字符串?

while read line
do
    if [[ line =~ *"$key"* ]]; then
        echo line
    fi
done < "$filename"
Run Code Online (Sandbox Code Playgroud)

$key是一个字符串变量,我想打印所有值为$key.

jan*_*nos 8

你在那里犯了一些错误。这是您更正的脚本:

while read line
do
    if [[ "$line" =~ $key ]]; then
        echo $line
    fi
done < "$filename"
Run Code Online (Sandbox Code Playgroud)

虽然它似乎可以用一个简单的代替grep:

grep "$key" "$filename"
Run Code Online (Sandbox Code Playgroud)

  • 此示例不再适用于 Bash 版本 &gt;= 4.0。如果引用 =~ 运算符的右侧,则不会执行变量扩展。 (2认同)