Campos de texto delimitado por tabulações de ordenação envolvendo espaços

0

Estou tendo dificuldades com o comando sort do Unix quando os campos delimitados por tabulação são introduzidos.

Se um arquivo test.txt contiver:

Hello (2)
Hello (1)
Hello

aplicando uma classificação:

sort test.txt

produz a saída:

Hello
Hello (1)
Hello (2)

No entanto, se um arquivo test2.txt contiver campos separados por guias:

Hello (2)\tFred
Hello (1)\tFred
Hello\tFred

onde \t é um caractere de tabulação, aplicando uma classificação:

sort -t $'\t' -k 1,2 test2.txt

resulta em uma ordem de classificação diferente.

Hello (1)   Fred
Hello (2)   Fred
Hello   Fred

Existe uma maneira de usar o comando sort para que os campos delimitados por tabulações sejam classificados da seguinte forma:

Hello   Fred
Hello (1)   Fred
Hello (2)   Fred
    
por Chris C. 28.07.2013 / 19:04

1 resposta

2

sort usa sua localidade atual para classificação. Estou usando LANG=en_GB.UTF-8 e obtenho seu resultado "indesejado". Usando o C locale, obtenho o resultado desejado:

$ LANG=C sort -t $'\t' -k 1,2 test2.txt
Hello   Fred
Hello (1)       Fred
Hello (2)       Fred
    
por 28.07.2013 / 19:31

Tags