Unix Shell命令模式列表文件期望任何一个文件来自模式

时间:2014-02-18 07:01:53

标签: shell unix

我有以下命令列出从 cat1 cat5

的所有文件
#ls cat[1-5]

我需要在上面的命令中进行哪些修改才能列出除 cat3

之外的所有文件

输出应为 cat1 cat2 cat4 cat5

此外,我尝试使用ls cat[1-10]列出从cat1到cat10的文件,但它仅在输出中显示 cat1

5 个答案:

答案 0 :(得分:2)

这样您可以排除任何字符列表:

ls cat[^3]

答案 1 :(得分:0)

ls | sed -e 's/\<cat3\>//g'

此命令序列可以生成结果。其中cat3是文件名。

答案 2 :(得分:0)

有两种方法可以做到。

  1. ls cat [1245]
  2. ls cat [1-5] | grep -v cat3

答案 3 :(得分:0)

您可以使用:

printf "%s\n" cat{1,2,4,5}

答案 4 :(得分:0)

问题是你正在使用正则表达式。所以cat[1-10]表示:所有名为cat0和cat1的文件,因为你只在括号内指定这两个字符(正则表达式不知道数字,只知道字符和字符范围)。

为了显示0到99999之间的所有内容,您可以执行以下操作:

# ls cat[0-9]*

对于bash中更多正则表达式,您可以查看一些文档: http://linux.die.net/Bash-Beginners-Guide/sect_04_01.html