Uso el guión bajo para denotar directorios especiales que deben ir al principio. En mi carpeta de proyectos, tengo proj_a, proj_b y _old_projects. No sirve de nada si esta carpeta está dentro de los proyectos o.
Martin Ueding
Respuestas:
9
Como comando único, puede hacer esto:
LC_COLLATE=C ls
O puede agregar export LC_COLLATE="C"a su .bashrc para que sea permanente (puede tener resultados inesperados al ordenar en otro lugar).
@dAnjou LC_COLLATE=Cls establece el orden de clasificación POSIX tradicional, que es por ASCII en el que las mayúsculas aparecen antes del guión bajo. Para que los guiones bajos se ordenen antes de las mayúsculas, debe colocarse debajo del capó y crear una definición de configuración regional personalizada en / usr / share / i18n / locales.
misterben
2
Esto puede haber funcionado en el pasado, pero no funciona en Ubuntu 12.04.
Mikel
1
A partir de Ubuntu 14.04, LC_COLLATE=C lsno funciona, pero lo LC_ALL=C lshace.
jwodder
6
En caso de que no haya una forma integrada de hacer esto, puede usar un reemplazo simple para sort:
#!/usr/bin/env python
import sys
for i in sorted(sys.stdin):
sys.stdout.write(i)
Guárdelo, por ejemplo, en /bin/pysorty hágalo ejecutable ( sudo cp whatever.py /bin/pysorty sudo chmod a+x /bin/pysort), y ejecútelo como ls | pysort:
Probablemente lo pondría ~/binpero es una buena alternativa. Probablemente sea mejor usar globbing dentro de python ya que la salida de ls puede ser extraña si un nombre de archivo contiene una nueva línea.
Martin Ueding
1
¿ ls | sortNo harías exactamente lo que necesitas?
Respuestas:
Como comando único, puede hacer esto:
LC_COLLATE=C ls
O puede agregar
export LC_COLLATE="C"
a su .bashrc para que sea permanente (puede tener resultados inesperados al ordenar en otro lugar).Más información en los foros de Ubuntu .
fuente
LC_COLLATE=C
ls establece el orden de clasificación POSIX tradicional, que es por ASCII en el que las mayúsculas aparecen antes del guión bajo. Para que los guiones bajos se ordenen antes de las mayúsculas, debe colocarse debajo del capó y crear una definición de configuración regional personalizada en / usr / share / i18n / locales.LC_COLLATE=C ls
no funciona, pero loLC_ALL=C ls
hace.En caso de que no haya una forma integrada de hacer esto, puede usar un reemplazo simple para
sort
:Guárdelo, por ejemplo, en
/bin/pysort
y hágalo ejecutable (sudo cp whatever.py /bin/pysort
ysudo chmod a+x /bin/pysort
), y ejecútelo comols | pysort
:fuente
~/bin
pero es una buena alternativa. Probablemente sea mejor usar globbing dentro de python ya que la salida de ls puede ser extraña si un nombre de archivo contiene una nueva línea.¿
ls | sort
No harías exactamente lo que necesitas?fuente