在Ubuntu中使用正则表达式查找文件

Cou*_*eau 2 regex linux ubuntu grep

我有一个任务,我必须找到条件,我认为需要正则表达式的不同文件.

例如 :

查找以3个小写字母开头且最后一个字母不是"i"的文件.我正在寻找找到这些文件的最佳方法.

我可以

ls [a-z][a-z][a-z]*[azertyuopqsdfghjklmwxcvbn]
Run Code Online (Sandbox Code Playgroud)

但是,这似乎有点.有任何想法吗 ?

Sun*_*eep 8

$ ls
abci  ASds  dferasfds  dsfa998  ilkj323  retk232i

$ find -regextype egrep -regex '.*/[a-z]{3}.*[^i]$'
./dferasfds
./dsfa998
./ilkj323
Run Code Online (Sandbox Code Playgroud)
  • .*/ 需要匹配文件路径的开头部分
  • [a-z]{3} 三个小写字母
  • .* 任何其他角色
  • [^i]$ 没有结束 i

但是,这种特殊情况似乎没有正则表达式:

$ find -name '[a-z][a-z][a-z]*[!i]'
./dferasfds
./dsfa998
./ilkj323
Run Code Online (Sandbox Code Playgroud)