按字母顺序查找文件

按字母顺序查找文件

使用 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

相关内容