Unix Shell comnand模式列出除模式中的任何一个文件之外的文件
我有以下命令列出从cat1到cat5的所有文件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
#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 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为什么