2016-08-12 157 views
2

我有一个目录,其中我有大量的文件名称,如work1,work2,work3,work4 ... workn(其中n是任何数字)。我想只列出其中有work为前缀的文件后,只有1,2,3,4或5grep命令与或逻辑

例如:应该名单下跌work1work2work3work4work5。所以我的逻辑是ls -al | grep work,但它也会列出work6,work7等。如何继续?

回答

7

There is no need to parse the output of ls。只是打电话ls时使用范围表达式:

ls -al work[1-5] 

这将匹配名称的模式匹配work[1-5]的任何文件。也就是说,任何名称为work1,...,work5的文件。

+3

任何理由downvote? – fedorqui

+1

奇怪的dowonvote,我必须中和它 – anubhava

+0

_“没有必要解析ls的输出。”_ < - 非常重要的+1。 – John1024

0

尝试正则表达式:

ls | grep -E 'work[1-5]' 
+0

是的,这也工作:) +1 –

+1

除了文件名包含换行符。当代码比在所有*情况下工作的代码更复杂时,不要使用在*大多数情况下工作的代码。 – chepner