¿Cómo echo solo 1 columna de salida desde el command ls?

Digamos que cuando command ls la salida es:

file1 file2 file3 file4 

¿Es posible mostrar solo una cierta columna de salida, en este caso, file2? He intentado lo siguiente sin éxito:

 echo ls | $2 

Básicamente, todo lo que quiero hacer es repetir solo la segunda columna, en este caso, quiero hacer eco:

 file2 

Related of "¿Cómo echo solo 1 columna de salida desde el command ls?"

El siguiente command formateará ls salida en una columna

 ls -1 /directory 

Usted está buscando esto:

 ls -C | awk '{ print $2 }' 

Sin embargo, suponiendo que va a intentar usar este nombre de file más adelante, no lo haga, ya que se romperá en los nombres de file que contengan espacios en blanco. En su lugar, coloque los files en una matriz y obtenga la segunda, lo que evita tener que realizar ningún tipo de análisis:

 files=(*) printf '%s\n' "${files[1]}" 

El order en que recuperas los files depende del valor de LC_COLLATE . Como tal, es posible que desee establecer LC_COLLATE=C primero, si desea una sorting "estándar" en todos los casos de esquina.

-C agregar -C ya que ls usa el modo de una sola columna cuando la salida no es un terminal. awk luego imprime la segunda columna:

 ls -C | awk '{print $2}' 
 num_chars=54 # offset ls -ltr | cut -c$num_chars- 

cambie la cantidad de caracteres (54) según sea necesario para que solo obtenga los datos que desea.

Esto debería funcionar:

 echo $(ls) | awk '{print $2}'