Я следующий файл CSV file1.csv
BASH: Найти максимальное значение в повторяющихся групп
sales,artist
10,0131
10,0131
10,10_000 Maniacs
10,1000names
15,E1001 Ways
15,E1001 Ways
10,S101 Strings Orchestra
10,D101 Strings Orchestra
10,x0cc
10,x0cc
Я пишу команду BASH, чтобы найти общий объем продаж для каждого художника. Вывод сортируется по общей стоимости продаж в порядке убывания.
Expected output.
30,E1001 Ways
20,0131
20,x0cc
10,10_000 Maniacs
10,1000names
10,S101 Strings Orchestra
10,D101 Strings Orchestra
Я написал код, чтобы найти максимальное значение, но это дает мне максимальные значения продаж для всех художников, а не общий максимальный объем продаж для каждого художника.
sort -nr file1.csv | awk 'BEGIN { FS="," }{ print $2; }'
Любая помощь в решении этой проблемы? Спасибо.
Выход
awk -F, 'NR > 1 { sales[$9] += $3 } END { for(s in sales) print sales[s] FS s }' million_songs_metadata_and_sales.csv | sort -nr -k1 | head -10
903,10000 Maniacs
562,51717
513,12012
506,35007
350,37500 Yens
2788,7000 Dying Rats
2325,2002
2210,1001 Ways
1992,1349
1968,1200 Techniques
Если он отсортирован таким образом, переведите его в 'awk' и выберите/распечатайте первую запись, когда ID E1001,0131 и т. Д. Изменится. надеюсь это поможет. привет –