首页 > 解决方案 > grep 正则表达式,用于以特定长度的两个字符开头的字符串

问题描述

我想显示一个a7长度为 32 个字母数字字符的字符串。我已经尝试了各种我希望工作的正则表达式,但它们似乎没有。这是grep在 Ubuntu 上使用的。

如果我只是使用grep <file> -e 'a9'它会显示字符串,但是当尝试根据第一个字符a7和 32 的长度过滤它时,grep <file> -e '/a7.{32}$'什么都不返回。这个表达式有什么问题使它不起作用吗?

标签: regexgrep

解决方案


如果长度是 32,那么你只需要30个字符,而不是32

grep <file> -e '/a7\w\{30\}$'

我将点更改为\w(word char) 因为你说你想要字母数字字符。更严格地说,使用'/a7[a-zA-Z0-9]\{30\}$'而不是\w,其中包括下划线字符(尽管对您来说可能无关紧要)。

此外,您必须转义大括号。


推荐阅读