如何使用grep和regex查找目录中的所有文件?

tro*_*ble 5 regex linux grep

我在Apache服务器上有一个目录(Linux/Unix),其中有很多子目录包含很多这样的文件:

- Dir  
  - 2010_01/
    - 142_78596_101_322.pdf
    - 12_10.pdf
    - ...
  - 2010_02/   
    - ...

我怎样才能找到文件名看起来像的所有文件:*_*_*_*.pdf?其中*总是一个数字!!

我试着像这样解决它:

ls -1Rl 2010-01 | grep -i '\(\d)+[_](\d)+[_](\d)+[_](\d)+[.](pdf)$' | wc -l
Run Code Online (Sandbox Code Playgroud)

但正则表达式\(\d)+[_](\d)+[_](\d)+[_](\d)+[.](pdf)$不适用于grep.

编辑1:尝试ls -l 2010-03 | grep -E '(\d+_){3}\d+\.pdf' | wc -l例如只返回null.所以它不完美

tro*_*ble 0

感谢gbchaosmaster狼,我找到了一种适合我的方法:

进入目录

find . | grep -P "(\d+_){3}\d+\.pdf" | wc -l
Run Code Online (Sandbox Code Playgroud)

在根目录

find 20*/ | grep -P "(\d+_){3}\d+\.pdf" | wc -l
Run Code Online (Sandbox Code Playgroud)