sort sintaxis por lista ejemplos completa comandos comando columna basicos unix sorting csv sql-order-by

unix - sintaxis - Ordenar archivo CSV por prioridad de columna con el comando "ordenar"



lista completa de comandos linux pdf (4)

Tengo un archivo csv y me gustaría ordenarlo por prioridad de columna, como "ordenar por". Por ejemplo:

3;1;2 1;3;2 1;2;3 2;3;1 2;1;3 3;2;1

Si esta situación fuera el resultado de un "seleccionar", el "orden por" sería el siguiente: ordenar por columna2, columna1, columna3 - el resultado sería:

2;1;3 3;1;2 1;2;3 3;2;1 1;3;2 2;3;1

Me gustaría saber cómo obtener este mismo resultado utilizando el comando "ordenar" en Unix.



La respuesta de Charlie anterior no funcionó para mí en Cygwin (ordenar versión 2.0, GNU textutils), lo siguiente hizo:

sort -t"," -k2 -k1 -k1


Supongamos que tiene otra fila 3;10;3 en su archivo unsorted.csv . Entonces supongo que esperas un resultado ordenado numéricamente:

2;1;3 3;1;2 1;2;3 3;2;1 1;3;2 2;3;1 3;10;3

y no uno alfabéticamente ordenado:

2;1;3 3;1;2 3;10;3 1;2;3 3;2;1 1;3;2 2;3;1

Para obtener eso, debes usar -n :

sort --field-separator='';'' -n -k 2,2 -k 1,1 -k 3,3 unsorted.csv

Vale la pena mencionar que 2,2 debe ser utilizado. Si solo se usa 2 , entonces sort toma la cadena desde el principio del campo 2 hasta el final. 2,2 se asegura de que solo se use el campo 2 .


sort --field-separator='';'' --key=2,1,3