Usando o ls -l com um pipe como posso obtê-lo para exibir o 8º arquivo na lista sem os detalhes do arquivo

0

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

    
por Erich 24.05.2012 / 21:34

4 respostas

4

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

    
por 24.05.2012 / 21:42
2

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

    
por 24.05.2012 / 22:26
0
ls | awk 'NR==8'
por 25.05.2012 / 09:07
0

Apenas não use -l

ls | head -8 | tail -1

Você obtém o nome do arquivo, ls orders files igual a ls -l .

    
por 03.09.2014 / 14:13

Tags