Я ищу, чтобы отобразить 8-е имя файла в каталоге, используя ls -l и pipe, например, ls -l | wc -1 даст мне счетчик, но я хочу получить восьмое имя файла в списке каталогов, что бы это ни было. я посмотрел на grep и подстановочные знаки, но все еще не вижу, какая команда даст мне результат, который я ищу.

Спасибо

4 ответа4

4

пытаться

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

0

Только не используйте -l

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

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

0
ls | awk 'NR==8'

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .