我有以下命令列出从 cat1 到 cat5
的所有文件#ls cat[1-5]
我需要在上面的命令中进行哪些修改才能列出除 cat3
之外的所有文件输出应为 cat1 cat2 cat4 cat5
此外,我尝试使用ls cat[1-10]
列出从cat1到cat10的文件,但它仅在输出中显示 cat1
答案 0 :(得分:2)
这样您可以排除任何字符列表:
ls cat[^3]
答案 1 :(得分:0)
ls | sed -e 's/\<cat3\>//g'
此命令序列可以生成结果。其中cat3是文件名。
答案 2 :(得分:0)
有两种方法可以做到。
答案 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