如何显示 ls 命令的第 n 个结果?

如何显示 ls 命令的第 n 个结果?

我使用此命令来显示目录中文件的第一个结果。

  ls | head -n 1

我的简单问题是,如何修改此命令以显示第 n 个结果?

谢谢!

答案1

您可以使用 sed 选择一行,例如第 12 行:

ls | sed -n 12p

Option-n要求 sed 不要打印每一行(这是它通常所做的),并12p要求在地址为 12 时打印模式空间。

答案2

直接使用awk

$ ls / | awk 'NR==4'
etc

答案3

可能有更好的方法来做到这一点,但这可能是最简单的:ls | head -<n> | tail -1

答案4

Withzsh和 glob 限定符:

ls -d -- *([7])

或者

print -rl -- *([7])

将打印按名称排序的文件列表中的第 7 个文件。

ls -d -- *(om[7])

或者

print -rl -- *(om[7])

o将打印按时间记录的文件列表中的第 7 个文件m(最新的第一个 - 类似于从ls -t输出中提取第 7 个条目)。


理想情况下,如果您正在处理ls输出,您应该使用类似ls -q | command(s)where -qprints 的东西?,而不是时髦的字符(如换行符)并command(s)仅处理输出行,打印第N次然后停止。

相关内容