
Estou procurando exibir o oitavo nome do arquivo em um diretório usando ls -l e pipe, por exemplo, ls -l | wc -1 me daria a contagem, mas o que eu quero retornar é o oitavo nome do arquivo na lista de diretórios, seja ele qual for. olhei grep e curingas, mas ainda não vejo qual comando me daria o resultado que estou procurando.
Obrigado
Responder1
tentar
ls -l | head -n 9 | tail -n 1
se quiser apenas o nome pode usar cut
no final
ls -l | head -n 9 | tail -n 1 | tr -s ' ' | cut -d' ' -f8
tr
é substituir multiplicar espaços e tabulações por um espaço
Responder2
Outra maneira é assim.
ls -l | sed -n '9p'
Se você deseja apenas o nome do arquivo ou diretório, use-o.
ls -l | sed -n '9p' | awk '{print $9}'
jcubic tem certeza de que era isso que você queria?
ls -l | head -n 9 | tail -n 1 | tr -s ' ' | cut -d' ' -f8
Eu acho que ele iria querer o nome do arquivo ou diretório assim.
ls -l | head -n 9 | tail -n 1 | tr -s ' ' | cut -d' ' -f9
Responder3
ls | awk 'NR==8'
- Vocênãoprecisar
ls -l
obter saída de 1 coluna, ou mesmols -1
se você estiver jogando a saída em um pipe (veja, por exemplo,Qual é o separador mágico entre nomes de arquivos na saída ls?). NR==8
retornará true apenas para a linha 8 eawk
a ação padrão é imprimi-la.
Responder4
Só não use-l
é | cabeça -8 | cauda -1
Você obtém o nome do arquivo e ls
ordena os arquivos da mesma forma que ls -l
.