在zsh中,有[m,n]
全局限定符其工作原理如下:
[求[,结束]]
指定哪个匹配的文件名应包含在返回的列表中。语法与数组下标相同。 beg 和可选的 end 可以是数学表达式。与参数下标一样,它们可能是负数,以使它们从最后一个匹配向后计数。例如:“*(-OL[1,3])”给出三个最大文件的名称列表。
例如,如果我输入:
print *([2,10])
它将返回与 匹配的元素 2 到 10 *
。
我的问题是:如何让 zsh 返回从元素 X 到列表末尾的匹配元素?
例如,假设我在一个文件夹中有 2500 个文件,但我不知道这个数字,我想匹配所有文件从...开始文件160。
我努力了:
1)print -l *([160])
-> 仅匹配文件#160。
2)print -l *([160,])
-> 未找到匹配项
3)print -l *~*([1,160])
-> 未找到匹配项
答案1
负数从末尾开始计数。最后一个元素是-1。
print -l *([160,-1])
如果您想要最后 42 个:
print -l *([-42,-1])