
Estoy buscando mostrar el octavo nombre de archivo en un directorio usando ls -l y pipe, por ejemplo ls -l | wc -1 me daría el recuento, pero lo que quiero que se devuelva es el octavo nombre de archivo en la lista de directorios, sea lo que sea. He mirado grep y comodines pero todavía no veo qué comando me daría el resultado que estoy buscando.
Gracias
Respuesta1
intentar
ls -l | head -n 9 | tail -n 1
Si quieres solo el nombre, puedes usarlo cut
al final.
ls -l | head -n 9 | tail -n 1 | tr -s ' ' | cut -d' ' -f8
tr
es reemplazar multiplicar espacios y tabulaciones por un espacio
Respuesta2
Otra forma es así.
ls -l | sed -n '9p'
Si solo desea el nombre del archivo o directorio, utilice esto.
ls -l | sed -n '9p' | awk '{print $9}'
jcubic ¿estás seguro de que esto es lo que querías?
ls -l | head -n 9 | tail -n 1 | tr -s ' ' | cut -d' ' -f8
Pensaría que querría un nombre de archivo o directorio como este.
ls -l | head -n 9 | tail -n 1 | tr -s ' ' | cut -d' ' -f9
Respuesta3
ls | awk 'NR==8'
- Túnonecesita
ls -l
obtener una salida de 1 columna, o inclusols -1
si está lanzando la salida a una tubería (ver, por ejemplo¿Cuál es el separador mágico entre nombres de archivos en la salida de ls?). NR==8
solo devolverá verdadero para la línea 8, y luegoawk
la acción predeterminada es imprimirla.
Respuesta4
Simplemente no uses-l
ls | cabeza -8 | cola -1
Obtiene el nombre del archivo, ls
ordena los archivos igual que ls -l
.