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

标签 linux unix grep

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

固定字符串_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/

相关文章:

linux - Linux 中的 atq 作业数量有限制吗?

linux - 如何安装 enthoughts python virtualenv (linux mint)

linux - 递归查找最后 n 行的特定文本

linux - Grep 使用帮助

java - jni.h 在 cmake linux 期间没有这样的文件或目录?

linux - 将 JBoss 作为 Windows 服务运行有什么用?

regex - 使用 grep 和 sed 时必须屏蔽哪些字符?

c++ - 如何查明第三方是否杀死或破坏了 C++ 程序

linux - 如何从单行输出中grep和输出由空格分隔的字符串 block

regex - 如何搜索整行