Skip to content

Instantly share code, notes, and snippets.

@tjhanley
Last active December 15, 2015 10:49
Show Gist options
  • Save tjhanley/5248861 to your computer and use it in GitHub Desktop.
Save tjhanley/5248861 to your computer and use it in GitHub Desktop.
parse out Mac OS versions from S3 Logs.
require "pp"
os_versions = {}
Dir['logs/*'].each do |path|
IO.readlines(path).each do |line|
%r/\b(?<os>mac os x \d{1,}_\d{1,}_\d{1,})\b|\b(?<os>osversion=\d{1,}\.\d{1,}\.\d{1,})\b/i =~ line
if os
os_versions[os] = os && os_versions[os] && os_versions[os] >= 1 ? os_versions[os] + 1 : 1
end
end
end
pp Hash[*os_versions.sort_by{ |key, value| -value }.flatten]

Output

{"Mac OS X 10_8_2"=>624,
 "osVersion=10.8.2"=>224,
 "Mac OS X 10_7_5"=>186,
 "Mac OS X 10_6_8"=>171,
 "Mac OS X 10_8_3"=>87,
 "osVersion=10.8.3"=>72,
 "Mac OS X 10_5_8"=>32,
 "osVersion=10.7.5"=>31,
 "Mac OS X 10_7_4"=>25,
 "Mac OS X 10_5_5"=>17,
 "Mac OS X 10_7_3"=>8,
 "Mac OS X 10_8_1"=>6,
 "Mac OS X 10_6_4"=>4,
 "Mac OS X 10_7_2"=>4,
 "Mac OS X 10_8_0"=>2,
 "osVersion=10.6.8"=>2,
 "Mac OS X 10_6_7"=>2,
 "Mac OS X 10_6_3"=>2,
 "Mac OS X 10_4_11"=>1,
 "Mac OS X 10_6_6"=>1,
 "Mac OS X 10_6_5"=>1,
 "Mac OS X 10_6_2"=>1}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment