使用 bash,我需要能够在按字母顺序列出时在特定位置找到文件。例如,如果我a, b, c, d, e
在目录中有文件,并且我想找到第三个文件,我需要它返回c
.如果我想要第五个文件,它将返回e
.
感谢您的帮助,抱歉,如果措辞不好,如果我能想到办法,我会稍后重新措辞
答案1
和zsh
:
printf '%s\n' *([5])
为您提供按词汇顺序排列的第五个非隐藏文件。更改为*(D[5])
包含隐藏文件(请注意,从不包含 和 ).
。..
在任何类似 Bourne 的 shell 中,您可以执行相同的操作:
set -- *
printf '%s\n' "$5"
答案2
这在任何 shell 中都可以工作:ls | awk "NR==$fileIndex{ print; }"
解释:
ls
按字母顺序返回目录中的所有文件,管道ls
在其自己的换行符上运行每个文件,awk "NR==$fileIndex{ print; }"
并将打印 . 定义的行号$fileIndex
。