Я пытаюсь отсортировать некоторые простые данные, разделенные каналом. Однако сортировка на самом деле не сортировка. Он перемещает строку заголовка вниз, но две строки, начинающиеся с 241, разделяются на строку, начинающуюся с 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
Заголовки столбцов перемещаются в конец файла, поэтому сортировка четко их обрабатывает. Но фактические значения сортируются не так, как я ожидал.
В этом случае я работал с этим
sort sort_fail.csv --field-separator='|' -k1,1
Но я чувствую, что в этом не должно быть необходимости. Почему сортировка не сортировка?
csvsort
с csvkit
, который правильно обрабатывает кавычки значения.
LC_COLLATE=C sort
. В зависимости от того, что вы ожидаете, вам также может понадобитьсяLC_COLLATE=C sort -t'|' -n