我似乎无法正确使用语法: 我希望grep计算以“0”开头的行,并在变量“phrase”中包含短语
我试过了:
cut -f1,5 file.txt|grep -c 0*${phrase}*
(切割工作正常,但这不是问题的一部分),但它不起作用。我做错了什么?
答案 0 :(得分:4)
0*
为“零或更多0
”,不一定在字符串的开头。
grep -c "^0.*${phrase}"
您可以使用.*
表示零个或多个字符。另请注意,$phrase
具有正则表达式元字符时可能会遇到的问题。
答案 1 :(得分:2)
正确的电话是
... | grep -c "^0.*$phrase"
必须引用整个内容以防止某些字符的shell解释,例如*
。 .*
匹配行开头的0和$phrase
匹配的0之间的0个或更多任意字符。