如何在bash中的正则表达式(grep -o)中包含变量?
我只是尝试过这样,但它没有奏效:
#!/bin/bash
var=1234
cat test.txt |grep -0 '[0-9]*${var}[0-9]'
答案 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]