¿Es posible ver esta salida ordenada con titlepage_1.pdf antes de titlepage_19.pdf?
$ ls
allTitlepage.pdf titlepage_12.pdf titlepage_19.tex titlepage_26.pdf titlepage_32.tex titlepage_4.tex
allTitlepage.tex titlepage_12.tex titlepage_1.pdf titlepage_26.tex titlepage_33.pdf titlepage_5.pdf
assignment.pdf titlepage_13.pdf titlepage_1.tex titlepage_27.pdf titlepage_34.pdf titlepage_5.tex
assignment.tex titlepage_13.tex titlepage_20.pdf titlepage_27.tex titlepage_34.tex titlepage_6.pdf
graphicsAssignment2.pdf titlepage_14.pdf titlepage_20.tex titlepage_28.pdf titlepage_35.pdf titlepage_6.tex
graphicsAssignment2.tex titlepage_14.tex titlepage_21.pdf titlepage_28.tex titlepage_35.tex titlepage_7.pdf
README.md titlepage_15.pdf titlepage_21.tex titlepage_29.pdf titlepage_36.pdf titlepage_7.tex
thesisTitlepage.pdf titlepage_15.tex titlepage_22.pdf titlepage_29.tex titlepage_36.tex titlepage_8.pdf
thesisTitlepage.tex titlepage_16.pdf titlepage_22.tex titlepage_2.pdf titlepage_37.pdf titlepage_8.tex
titlepage_0.pdf titlepage_16.tex titlepage_23.pdf titlepage_2.tex titlepage_37.tex titlepage_9.pdf
titlepage_0.tex titlepage_17.pdf titlepage_23.tex titlepage_30.pdf titlepage_38.pdf titlepage_9.tex
titlepage_10.pdf titlepage_17.tex titlepage_24.pdf titlepage_30.tex titlepage_38.tex titlepage_one.pdf
titlepage_10.tex titlepage_18.pdf titlepage_24.tex titlepage_31.pdf titlepage_3.pdf titlepage_one.tex
titlepage_11.pdf titlepage_18.tex titlepage_25.pdf titlepage_31.tex titlepage_3.tex titlepage_two.tex
titlepage_11.tex titlepage_19.pdf titlepage_25.tex titlepage_32.pdf titlepage_4.pdf
command-line
ls
alhelal
fuente
fuente
Respuestas:
Utilice el modificador -v [tipo natural de (versión) números dentro del texto]
fuente
La salida está ordenada. Según la página del
ls
manual:Pero si quieres ir más allá, tienes al menos dos opciones:
Opción 1 -
ls
ordenar interruptoresman ls
le informa sobre una cantidad de interruptores que puede usar para ordenar, específicamente, la página de manual de ls dice:En su caso, desea ordenar por "versión" (-v). Sin embargo, tenga cuidado, ya que esto también clasificará todo lo que tenga un
blahblah-X.Y.Z-A
arreglo que puede no ser del todo lo que desea. Ver también la explicación de GNU sobre el ordenamiento de versiones .Opción 2 - Tuberías para ordenar comandos
Podría usar una tubería
|
para enviar la salida a otro comando, por ejemplo, el comandosort
que podría usar para ordenar de varias otras maneras, yals -1 | sort -n
que es útil si tiene archivos numerados. El-1
conmutador asegura que la salida sea de una línea por archivo.Igualmente, puede manipular la salida para ayudar con la clasificación mediante el uso de cosas como
sed
oawk
.Hay muchas maneras de responder a este tipo de * pregunta. Puede encontrar útil un tutorial de shell de Linux.
* (¿Ves lo que hice allí? :-P)
fuente
Como ya se señaló en un comentario, la salida ya está ordenada, pero por caracteres, no por números. Es posible que desee canalizar la salida de
ls
throughsort
que tiene un interruptor para ordenar por números dentro de las cadenas:Desde la página del manual :
Desventaja: cuando emitimos
ls
, genera los archivos en una tabla con tantas columnas como caben en la pantalla actual (tal como lo mostró en su publicación). Pero cuando sels
da cuenta de que su salida se redirige a un archivo o una tubería (como enls | sort
),ls
imprime los archivos en una sola columna porque asume que la salida se procesará línea por línea (también conocido como archivo por archivo) por algún otro programa (comosort
). Por lo tanto, la salida dels | sort -V
estará en una columna en lugar de en una tabla con varias columnas. Vea la respuesta simple pero perfecta de @vijay sobre cómo evitar eso.fuente
column
ls -l
: enumera los archivos del directorio verticalmente pero no en un orden particular.ls -l | sort -k 3
:-k 3
ordenaría la salida del comando anterior por la 3ra columna.fuente