【发布时间】:2016-12-19 04:18:51
【问题描述】:
我有一个目录,其中有许多文件,名称如 work1、work2、work3、work4 ... workn(其中 n 是任意数字)。我只想列出以 work 为前缀的文件,之后只有 1、2、3、4 或 5。
例如:应该列出work1work2work3work4work5。所以我的逻辑是ls -al | grep work,但它也会列出work6、work7 等。如何进行?
【问题讨论】:
我有一个目录,其中有许多文件,名称如 work1、work2、work3、work4 ... workn(其中 n 是任意数字)。我只想列出以 work 为前缀的文件,之后只有 1、2、3、4 或 5。
例如:应该列出work1work2work3work4work5。所以我的逻辑是ls -al | grep work,但它也会列出work6、work7 等。如何进行?
【问题讨论】:
There is no need to parse the output of ls。调用ls时只需使用范围表达式:
ls -al work[1-5]
这将匹配名称与模式work[1-5] 匹配的任何文件。也就是说,任何名称为 work1, ..., work5 的文件。
【讨论】:
试试正则表达式:
ls | grep -E 'work[1-5]'
【讨论】: