我使用此命令来显示目录中文件的第一个结果。
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 -q
prints 的东西?
,而不是时髦的字符(如换行符)并command(s)
仅处理氮输出行,打印第N次然后停止。