2015-02-04 4 views
0

У меня довольно большой файл CSV, глядя, как это:Инструментов командной строки для управления томами CSV

id,date,user,points 
32,2006-10-10T15:43:00Z,alice,5 
37,2006-10-10T20:13:54Z,bob,12 
38,2006-10-10T20:44:53Z,alice,7 
39,2006-10-10T20:55:50Z,john,4 
40,2006-10-10T20:59:01Z,john,8 
42,2006-10-11T02:10:01Z,alice,16 
.... 

мне было интересно, это есть какая-либо утилита командной строки, чтобы управлять этим CSV для создания своего рода сводной таблицы из этого данные, быстро получая общее количество точек на пользователя, например.

Я знаю, что это вполне возможно написать небольшой скрипт, но зная, насколько могущественны awk или grep, я ожидал аналогичного решения для такого типа манипуляций с данными.

Большое спасибо за вашу помощь

+0

Perl приходит на ум его ассоциативный массив или хэш. Но я думаю, awk может это сделать, особенно вместе с grep. Где ты застрял на этом? Не можете ли вы найти что-то подобное и изменить его? – Paul

ответ

0

Взгляните на Ftable, это монолитный скрипт с Perl без внешних зависимостей.

Donwload, сделать его выполнимым и запустить. очень просто.

0

Tabulator - это набор инструментов командной строки unix для работы с файлами с разделителями, которые имеют строки заголовков. Предположим, что ваш файл называется test.csv. Тогда

tblred -uk user -c'sum_points=sum(points)' alice.csv 

производит

user,sum_points 
alice,28.0 
bob,12.0 
john,12.0 
Смежные вопросы