【发布时间】:2016-05-25 02:53:29
【问题描述】:
如果我通过管道将ls 传递到grep,我将如何返回一个文件列表,条件是它们只有x 个字母,包括扩展名?
例如,如果ls 给我:
abcde.jav a156e.exc test.c prog1.c qwert r.c
我正在寻找所有包含严格 5 个字母的文件,包括扩展名:
a156e.exc test.c prog1.c qwert
我试过了:
ls | grep '^[a-z]${5}'
ls | grep "^[a-z]|[a-z]$"
和其他类似的东西,但我似乎无法理解。似乎解决方案应该非常简单,但我无法弄清楚。任何帮助将不胜感激。
【问题讨论】:
-
旁白:如果你碰巧这样做了:不要使用
ls输出任何东西。ls是一个交互式查看目录元数据的工具。任何用代码解析ls输出的尝试都会被破坏。 Globs 更加简单和正确:阅读Parsing ls -
qwerty有 6 个字母。那不应该匹配,对吧? -
你可以用
find代替ls。 -
@JoshCrozier,你是对的,我的错。
-
@RanyAlbegWein,我不知道!我很欣赏这个链接。