У меня есть таблица csv, которая содержит несколько тысяч строк, например:
Column 1, Column 2, Column 3, Column 4
Bla Bla, 1, 100, Bla bla
Bla Bla, 4, 2000, Bla bla
Bla Bla, 10, 63, Bla bla
Bla Bla, 1, 340, Bla bla
Bla Bla, 2, 65, Bla bla
Bla Bla, 4, 100, Bla bla
Bla Bla, 10, 10, Bla bla
Bla Bla, 2, 100, Bla bla
Bla Bla, 10, 99, Bla bla
Bla Bla, 1, 210, Bla bla
Bla Bla, 2, 1000, Bla bla
Я хотел бы заказать два столбца через bash в терминале (в macOS, если это имеет значение).
a) Второй столбец должен быть упорядочен по номерам 1, 2, 4 и т. Д. И соответствующая строка с ним, например:
Column 1, Column 2, Column 3, Column 4
Bla Bla, 1, 100, Bla bla
Bla Bla, 1, 340, Bla bla
Bla Bla, 1, 210, Bla bla
...
b) На втором этапе третий столбец долженбыть упорядочены численно в пределах группы, в которой они находятся. Например, все ячейки должны быть упорядочены в пределах группы 1, затем 2 и т. д., конечный результат (в моем примере должен выглядеть следующим образом:
Column 1, Column 2, Column 3, Column 4
Bla Bla, 1, 100, Bla bla
Bla Bla, 1, 210, Bla bla
Bla Bla, 1, 340, Bla bla
Bla Bla, 2, 65, Bla bla
Bla Bla, 2, 100, Bla bla
Bla Bla, 2, 1000, Bla bla
Bla Bla, 4, 100, Bla bla
Bla Bla, 4, 2000, Bla bla
Bla Bla, 10, 10, Bla bla
Bla Bla, 10, 99, Bla bla
Bla Bla, 10, 63, Bla bla
Как это может бытьготово?
Редактировать:
Я попытался sort -k2,2 input.csv | sort -k 3,3 > output.csv
. Однако выход снова перемешивает группы в столбце 2, в то время как третий столбец правильно упорядочен.