Como eu personalizo a ordem de classificação de caracteres?

4

Como posso definir a ordem / precedência de caracteres dos personagens no Linux?

No momento, estou usando o comando para testar isso da seguinte maneira:

ls -al --group-directories-first

Digamos que eu tenha os seguintes arquivos:

a
b
c
A
B
C
.a
.b
.c
.A
.B
.C

A saída padrão de ls é esta:

-rw-r--r--  1 username  username     0 Jan 11 07:18 a
-rw-r--r--  1 username  username     0 Jan 11 07:55 .a
-rw-r--r--  1 username  username     0 Jan 11 07:18 A
-rw-r--r--  1 username  username     0 Jan 11 07:55 .A
-rw-r--r--  1 username  username     0 Jan 11 07:18 b
-rw-r--r--  1 username  username     0 Jan 11 07:55 .b
-rw-r--r--  1 username  username     0 Jan 11 07:18 B
-rw-r--r--  1 username  username     0 Jan 11 07:55 .B
-rw-r--r--  1 username  username     0 Jan 11 07:18 c
-rw-r--r--  1 username  username     0 Jan 11 07:55 .c
-rw-r--r--  1 username  username     0 Jan 11 07:18 C
-rw-r--r--  1 username  username     0 Jan 11 07:55 .C

A ordem de saída que desejo:

-rw-r--r--  1 username  username     0 Jan 11 07:55 .A
-rw-r--r--  1 username  username     0 Jan 11 07:55 .a
-rw-r--r--  1 username  username     0 Jan 11 07:55 .B
-rw-r--r--  1 username  username     0 Jan 11 07:55 .b
-rw-r--r--  1 username  username     0 Jan 11 07:55 .C
-rw-r--r--  1 username  username     0 Jan 11 07:55 .c
-rw-r--r--  1 username  username     0 Jan 11 07:18 A
-rw-r--r--  1 username  username     0 Jan 11 07:18 a
-rw-r--r--  1 username  username     0 Jan 11 07:18 B
-rw-r--r--  1 username  username     0 Jan 11 07:18 b
-rw-r--r--  1 username  username     0 Jan 11 07:18 C
-rw-r--r--  1 username  username     0 Jan 11 07:18 c

Coisas que tentei em .bashrc :

export LC_ALL="C"               #Did not work
export LC_COLLATE="en_US.UTF-8" #Did not work
export LC_LANG="C"              #Did not work
export LC_COLLATE="C"           #Did not work

Então, como eu faria minha própria ordem / precedência de caracteres?

Obrigado

    
por UnskilledBuild 11.01.2017 / 17:12

1 resposta

0

Parece que o comando sort pode fornecer alguma ajuda.

-t, --field-separator=SEP

usa o SEP em vez de não-branco para a transição em branco

-k, --key=POS1[,POS2]

inicia uma chave em POS1 (origem 1), termina em POS2 (final padrão da linha)

ls -lAr|sort -t . -k2
-rw-r--r-- 1 CRM CCRM 0 Jan 20 09:35 a
-rw-r--r-- 1 CRM CCRM 0 Jan 20 09:35 b
-rw-r--r-- 1 CRM CCRM 0 Jan 20 09:36 c
-rw-r--r-- 1 CRM CCRM 0 Jan 20 09:36 d
-rw-r--r-- 1 CRM CCRM 0 Jan 20 09:38 A
-rw-r--r-- 1 CRM CCRM 0 Jan 20 10:34 .a
-rw-r--r-- 1 CRM CCRM 0 Jan 20 09:36 .A
-rw-r--r-- 1 CRM CCRM 0 Jan 20 09:38 .b
-rw-r--r-- 1 CRM CCRM 0 Jan 20 09:36 .B
-rw-r--r-- 1 CRM CCRM 0 Jan 20 09:36 .C
-rw-r--r-- 1 CRM CCRM 0 Jan 20 09:36 .D
    
por 20.01.2017 / 10:40

Tags