正则表达式:数字开头中间字母结尾数字

linux下。要对目录下的所有文件进行查找,以数字开始,中间为字母,并且以数字结尾
这样写不对吗?
grep -E "^[0-9]+[a-z]+[0-9]$" . -R -n

新人求教

1、linux使用正则表达式命令,搜索以某个字串打头的行。命令如下:# grep -n '^word' filename表示带行号输出所有以word打头的该行内容,其中[^word]为关键字。

2、搜索一某个字串结尾的行。命令如下:# grep -n 'word$' filename表示带行号输出所有以word结尾的该行内容,其中[word$]为关键字。

3、匹配任意一个字符。如下:# grep -n 't.e' filename表示显示含有字符 tae,tbe...等字串的行,但不能是 te ,因为' . '点号代表一个任意字符。关键字 [ . ]。

4、匹配0个或多个前面一个字符。示例如下:# grep -n 'cho*' filename表示将寻找 ch,cho,..,符号’*'代表将重复字符o零次或多次。关键字[ *]。

5、取反操作,如下:# grep -n '[^s]he' filename表示将不搜索she字串,其他的ahe,bhe... 则可以。关键字 ( [ ^ ])。注:'^'符号在 [ ]内表示取反操作。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-12-16
如果你的结尾数字是多个也可以的话,你就要再加上一个+号,另外,中间的字母允许大写么?允许的话要再加上A-Z,所以你可以改这样试试:
"^[0-9]+[a-zA-Z]+[0-9]+$"追问

mi@ubuntu:~/test$ cat test.txthe is a rat
he is in a rut
the food is Rotten
I like root beer
whe is in a rut
1256313asas11
12312213
546aaaaa
111

habchhabc
hhhabcd
hhhhhh
现在我要得到1256313asas11行,
mi@ubuntu:~/test$ cat test.txt | grep -E "^[0-9]+[a-z]+[0-9]+]$"
这么写不对吗?

追答

你多打了一个]号了:
[seesea@UC flight]$ cat test.txt | grep -E "^[0-9]+[a-z]+[0-9]+]$"
[seesea@UC flight]$ cat test.txt | grep -E "^[0-9]+[a-z]+[0-9]+$"
1256313asas11

本回答被提问者采纳
相似回答