tente
ls -l | head -n 9 | tail -n 1
se você quiser apenas um nome, pode usar cut
no final
ls -l | head -n 9 | tail -n 1 | tr -s ' ' | cut -d' ' -f8
tr
é para substituir multiplos espaços e tabulações por um espaço
Estou procurando exibir o 8º nome de 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 ter retornado é o nome do arquivo 8 na lista de diretórios seja o que for. Eu olhei para grep e wildcards, mas ainda não vejo qual comando me daria o resultado que estou procurando.
Obrigado
tente
ls -l | head -n 9 | tail -n 1
se você quiser apenas um nome, pode usar cut
no final
ls -l | head -n 9 | tail -n 1 | tr -s ' ' | cut -d' ' -f8
tr
é para substituir multiplos espaços e tabulações por um espaço
Outra maneira é assim.
ls -l | sed -n '9p'
Se você quiser apenas o nome do arquivo ou diretório, use-o.
ls -l | sed -n '9p' | awk '{print $9}'
jcubic tem certeza que é 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 como este.
ls -l | head -n 9 | tail -n 1 | tr -s ' ' | cut -d' ' -f9
ls | awk 'NR==8'
ls -l
para obter uma saída de 1 coluna, ou mesmo ls -1
se estiver lançando uma saída para um canal (veja, por exemplo, O que é o separador mágico entre nomes de arquivos na saída ls? ). NR==8
só retornará true para a linha 8 e, em seguida, awk
default action é para imprimi-lo. Apenas não use -l
ls | head -8 | tail -1
Você obtém o nome do arquivo, ls
orders files igual a ls -l
.