Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix Shell comnand模式列出除模式中的任何一个文件之外的文件_Shell_Unix - Fatal编程技术网

Unix Shell comnand模式列出除模式中的任何一个文件之外的文件

Unix Shell comnand模式列出除模式中的任何一个文件之外的文件,shell,unix,Shell,Unix,我有以下命令列出从cat1到cat5的所有文件 #ls cat[1-5] 我需要在上面的命令中进行哪些修改才能列出除cat3之外的所有文件 输出应为第1类第2类第4类第5类 #ls cat[1-5] 另外,我试图用ls cat[1-10]列出从cat1到cat10的文件,但它只在输出中显示cat1ls | sed-e的/\//g' ls | sed -e 's/\<cat3\>//g' 此命令序列可以产生结果。其中cat3是一个文件名。有两种方法可以做到这一点 ls类别[12

我有以下命令列出从cat1cat5的所有文件

#ls cat[1-5]
我需要在上面的命令中进行哪些修改才能列出除cat3之外的所有文件

输出应为第1类第2类第4类第5类

#ls cat[1-5]
另外,我试图用
ls cat[1-10]
列出从cat1到cat10的文件,但它只在输出中显示cat1

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

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

有两种方法可以做到这一点

  • ls类别[1245]
  • ls cat[1-5]| grep-v cat3

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

    ls cat[^3]
    
    您可以使用:

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

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

    要显示从0到99999…,可以执行以下操作:

    # ls cat[0-9]*
    
    有关bash中的更多正则表达式,您可以查看以下文档:

    仅列出cat1、cat2、cat4、cat5,但使用此命令时未列出其他文件。是的,因为您的文件夹中没有其他文件以“cat”开头。我正在尝试ls cat[1-10],但它仅显示cat1为什么