J'essaie de trier quelques données simples délimitées par des tuyaux. Cependant, le tri n'est pas réellement un tri. Il déplace ma ligne d'en-tête vers le bas, mais mes deux lignes commençant par 241 sont divisées par une ligne commençant par 24.
cat sort_fail.csv
column_a|column_b|column_c
241|212|20810378
24|121|2810172
241|213|20810376
sort sort_fail.csv
241|212|20810378
24|121|2810172
241|213|20810376
column_a|column_b|column_c
Les en-têtes de colonne sont déplacés vers le bas du fichier, donc le tri est clairement en train de le traiter. Mais, les valeurs réelles ne sont pas triées comme je m'y attendais.
Dans ce cas, j'ai travaillé avec
sort sort_fail.csv --field-separator='|' -k1,1
Mais je pense que cela ne devrait pas être nécessaire. Pourquoi le tri n'est-il pas le tri?
csvsort
partir csvkit
desquelles vous pouvez utiliser , qui gèrent correctement les valeurs entre guillemets.
LC_COLLATE=C sort
. Selon ce à quoi vous vous attendez, vous devrez peut-être aussiLC_COLLATE=C sort -t'|' -n