
Я хочу отобразить восьмое имя файла в каталоге с помощью 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'
- Тыненужно
ls -l
получить вывод в 1 столбец или дажеls -1
если вы отправляете вывод в канал (см. напримерЧто такое магический разделитель между именами файлов в выводе ls?). NR==8
вернет значение true только для строки 8, а затемawk
действием по умолчанию будет ее печать.
решение4
Просто не используй-l
ls | голова -8 | хвост -1
Вы получаете имя файла, ls
упорядочивает файлы так же, как ls -l
.