如何在bash中使用正则表达式中的变量?

时间:2017-11-06 14:29:15

标签: regex bash variables

如何在bash中的正则表达式(grep -o)中包含变量?

我只是尝试过这样,但它没有奏效:

#!/bin/bash
var=1234
cat test.txt |grep -0 '[0-9]*${var}[0-9]'

1 个答案:

答案 0 :(得分:1)

使用双引号,不需要cat

var=1234
grep -o "[0-9]*${var}[0-9]" yourfile

变量扩展,因为它在双引号之间(内部单引号只是字符)

了解它的工作原理

$ cat test.sh 
#!/usr/bin/env bash
set -x 
var=1234
echo '[0-9]*${var}[0-9]' 
echo "[0-9]*${var}[0-9]" 

输出:

$ bash test.sh 
+ var=1234
+ echo '[0-9]*${var}[0-9]'
[0-9]*${var}[0-9]
+ echo '[0-9]*1234[0-9]'
[0-9]*1234[0-9]