У меня есть CSV-файл, который может выглядеть следующим образом:Как разбить файл CSV на несколько файлов на основе значения столбца
name1;1;11880
name2;1;260.483
name3;1;3355.82
name4;1;4179.48
name1;2;10740.4
name2;2;1868.69
name3;2;341.375
name4;2;4783.9
там может более или менее строки, и мне нужно разбить его на несколько файлов .dat каждый из которых содержит строки с одинаковым значением второго столбца этого файла. (Тогда я буду делать гистограмму для каждого файла .dat) В этом случае должно быть два файла:
data1.dat
name1;1;11880
name2;1;260.483
name3;1;3355.82
name4;1;4179.48
data2.dat
name1;2;10740.4
name2;2;1868.69
name3;2;341.375
name4;2;4783.9
Есть ли простой способ сделать это с баш?
можно ли печатать округленные значения вместо (например, 260 вместо 260.483)? – user3616643
Вы можете обрезать значения, используя функцию int(), 'awk -F ';' '{print> "data" int ($ 2) ".dat"}' data.dat' –
и, конечно, вы можете печатать только выбранные столбцы (и усекать их), например. используя 'print int ($ 3)> ....' –