我在文件中有以下格式的字符串:
fixedstring_1 fixedstring_23 fixedstring_456 ... fixedstring_ [1到n位]
我在终端尝试了grep -E“fixedstring _ [..... n次]”文件路径。但是,失败了。
我希望命令获取计数(-c)并列出行。
答案 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
替换为最大位数