Используя ls -l с конвейером, как мне заставить его отобразить 8-й файл в списке без сведений о файле?

Используя ls -l с конвейером, как мне заставить его отобразить 8-й файл в списке без сведений о файле?

Я хочу отобразить восьмое имя файла в каталоге с помощью ls -l и pipe, например, ls -l | wc -1 вернет мне количество, но мне нужно вернуть восьмое имя файла в списке каталогов, каким бы оно ни было. Я просмотрел 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'

решение4

Просто не используй-l

ls | голова -8 | хвост -1

Вы получаете имя файла, lsупорядочивает файлы так же, как ls -l.

Связанный контент