User Tools

Site Tools


awk

Find length of the longest line in a file

awk ' { if ( length > L ) { L=length} }END{ print L}' file.txt

Sum a column from CSV file

awk -F "," '{ sum += $10 } END { print sum }' daily_beehive_casino_games_activity_2015-08-16.csv
Multiple sums with additional formatting
awk -F "," '{ money_bets += $6; money_settles += $7; bonus_bets += $8; bonus_settles += $9 } END { print "=========================\nMoney bets:\t", money_bets, "\nBonus bets:\t", bonus_bets, "\nTotal bets:\t", money_bets + bonus_bets, "\nMoney settles:\t", money_settles, "\nBonus settles:\t", bonus_settles, "\nTotal settles:\t", money_settles + bonus_settles, "\n=========================\nGGR:\t\t", (money_bets + bonus_bets) - (money_settles + bonus_settles)  }' daily_beehive_sport_bet_activity_*.csv

If we are only interested in summing certain rows

awk -F "," '$7=="deposit"{ sum += $11 ;} END { print sum }' "daily_beehive_player_transaction_2015-09-03.csv"

Filter greater than from CSV

awk -F "," '$10 > 0' daily_beehive_casino_games_activity_2015-10-10.csv | cut -d \, -f 3 | sort -u | wc -l

Apart of awk filtering, I cut everything apart of 3rd column, get unique values of it and count them.

Parsing dates

gawk -F "," '{after_n_days = 150 * 24 * 3600; d=$21;gsub(/[-:T]/, " ", d);gsub(/\+.+/, " ", d)}; $24 > 0 && mktime(d) > (systime() - after_n_days)' casinoheroes-SE-09-19.csv | wc -l

It should return entries younger than 150 days.

Other

awk.txt · Last modified: 2021/02/16 09:56 (external edit)