如何通过grep命令搜索包含数字的字符串

时间:2014-07-09 15:53:44

标签: linux unix grep

我在文件中有以下格式的字符串:

fixedstring_1  fixedstring_23  fixedstring_456  ...  fixedstring_ [1到n位]

我在终端尝试了grep -E“fixedstring _ [..... n次]”文件路径。但是,失败了。

我希望命令获取计数(-c)并列出行。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,请给出以下文件......

fixedstring_1
bar
fixedstring_456
foo
fixedstring_45622
fixedstring_
fixedstring

您希望仅匹配(并获得计数)这些行:

fixedstring_1
fixedstring_456
fixedstring_45622

这应该有效:

grep -Ec 'fixedstring_[[:digit:]]+' filename

[[:digit:]]+部分匹配1位或更多位数。有关grep regex的更多信息,请访问:http://www.gnu.org/savannah-checkouts/gnu/grep/manual/grep.html#Regular-Expressions

修改

如果你想匹配只有一定数量的数字的字符串,你必须更聪明一点:

grep -E 'fixedstring_[[:digit:]]{MIN,MAX}([^[:digit:]]|$)' filename

MIN替换为您要匹配的最小位数,将MAX替换为最大位数