我在文件中有以下格式的字符串:
固定字符串_1 fixedstring_23 fixedstring_456 ... fixedstring_[1 到 n 位数字]
我尝试在终端中使用 grep -E "fixedstring_[.....n times]"文件路径。但是,失败了。
我想要命令来获取计数 (-c) 并列出行。
最佳答案
如果我没理解错的话,给定以下文件...
fixedstring_1
bar
fixedstring_456
foo
fixedstring_45622
fixedstring_
fixedstring
您只想匹配(并计算)这些行:
fixedstring_1
fixedstring_456
fixedstring_45622
这应该有效:
grep -Ec 'fixedstring_[[:digit:]]+' filename
[[:digit:]]+
部分匹配一位或多位数字。更多关于 grep 正则表达式的信息:http://www.gnu.org/savannah-checkouts/gnu/grep/manual/grep.html#Regular-Expressions
编辑:
如果你想匹配只有一定数量数字的字符串,你必须变得更聪明一点:
grep -E 'fixedstring_[[:digit:]]{MIN,MAX}([^[:digit:]]|$)' filename
将 MIN
替换为您要匹配的最小位数,将 MAX
替换为最大值。
关于linux - 如何通过grep命令搜索包含数字的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24658364/