我希望使用 ls -l 和管道显示目录中的第 8 个文件名,例如 ls -l | wc -1 会给我计数,但我想要返回的是目录列表中的第 8 个文件名,无论它是什么。我查看了 grep 和通配符,但仍然没有看到哪个命令可以给我我想要的结果。
谢谢
答案1
尝试
ls -l | head -n 9 | tail -n 1
如果你只想要名字,你可以cut
在最后使用
ls -l | head -n 9 | tail -n 1 | tr -s ' ' | cut -d' ' -f8
tr
是用一个空格替换多个空格和制表符
答案2
另一种方式是这样的。
ls -l | sed -n '9p'
如果您只想要文件或目录名称,请使用这个。
ls -l | sed -n '9p' | awk '{print $9}'
jcubic 你确定这是你想要的吗?
ls -l | head -n 9 | tail -n 1 | tr -s ' ' | cut -d' ' -f8
我认为他想要这样的文件或目录名称。
ls -l | head -n 9 | tail -n 1 | tr -s ' ' | cut -d' ' -f9
答案3
ls | awk 'NR==8'
- 你不需要
ls -l
获得 1 列输出,或者即使ls -1
你将输出抛出到管道(参见例如ls 输出中文件名之间的魔术分隔符是什么?)。 NR==8
仅对第 8 行返回 true,然后awk
默认操作是打印它。
答案4
不要使用-l
ls | 头 -8 | 尾 -1
您将获得文件名,ls
并将其与文件顺序相同ls -l
。