如何grep包含变量的模式?

时间:2015-11-02 20:29:44

标签: bash variables grep

我似乎无法正确使用语法: 我希望grep计算以“0”开头的行,并在变量“phrase”中包含短语

我试过了:

cut -f1,5 file.txt|grep -c 0*${phrase}*

(切割工作正常,但这不是问题的一部分),但它不起作用。我做错了什么?

2 个答案:

答案 0 :(得分:4)

0*为“零或更多0”,不一定在字符串的开头。

grep -c "^0.*${phrase}"

您可以使用.*表示零个或多个字符。另请注意,$phrase具有正则表达式元字符时可能会遇到的问题。

答案 1 :(得分:2)

正确的电话是

... | grep -c "^0.*$phrase"

必须引用整个内容以防止某些字符的shell解释,例如*.*匹配行开头的0和$phrase匹配的0之间的0个或更多任意字符。