我有以下命令,用于列出从cat1到cat5的所有文件:
#ls cat[1-5]
我需要修改上面的命令,以列出除cat3之外的所有文件。
输出应该是cat1 cat2 cat4 cat5
另外,我正在尝试使用ls cat[1-10]
列出从cat1到cat10的文件,但输出中只显示cat1。
通过这种方式,您可以排除任何字符列表:
ls cat[^3]
ls | sed -e 's/\<cat3\>//g'
这个命令序列可以产生结果,其中cat3是一个文件名。
这可以通过以下两种方式来完成。
您可以使用:
printf "%s\n" cat{1,2,4,5}
cat[1-10]
的意思是:所有名为cat0和cat1的文件,因为您只在括号内指定了这两个字符(正则表达式不知道数字,只知道字符和字符范围)。# ls cat[0-9]*
如果您想了解更多有关Bash中的正则表达式,请查看以下文档: http://linux.die.net/Bash-Beginners-Guide/sect_04_01.html