glob的东西是它可以匹配子路径.当你写Dir.glob('*/*')它时,它将直接返回当前目录的子目录下的所有文件和目录.它可以做到这一点,因为glob模式足够简单,以便计算机能够理解 - 如果它是正则表达式,它将必须扫描整个文件系统并将每个路径与模式进行比较,这太过分了.
但是,你可以结合-使用Dir.glob选择哪里进行搜索,并grep选择什么搜索:
[1] pry(main)> Dir.glob('/usr/lib/*').grep(/\/lib[A-Z]+\.so$/)
=> ["/usr/lib/libFLAC.so", "/usr/lib/libEGL.so", "/usr/lib/libHACD.so", "/usr/lib/libLTO.so", "/usr/lib/libGLEW.so", "/usr/lib/libGL.so", "/usr/lib/libSDL.so", "/usr/lib/libGLU.so", "/usr/lib/libSM.so", "/usr/lib/libICE.so"]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3877 次 |
| 最近记录: |