#!/usr/bin/env ruby require 'pry' require 'csv' INFO = Struct.new(:gln, :fax, :fon) INFOS = [] def write_file CSV.open("company_fax_fon.csv", "w+") do |csv| csv << ["gln", "fax", "fon"] INFOS.each do |info| if (info.fax && !info.fax.empty?) || (info.fon && !info.fon.empty?) csv << [info.gln, info.fax, info.fon] end end end end def strip_160(string) return nil unless string return nil if string.length == 1 && string[0].ord == 160 return string[0..-2] if string.length > 1 && string[-1].ord == 160 string end def read_log lines = IO.readlines('gelöschte_telefon_nummern.log') lines.each do |line| info = INFO.new m = /update (\d+).+@fon\=\[\\\"([^\\\"\]]+)/.match(line) if m info.gln = m[1] info.fon = strip_160(m[2]) end m = /update (\d+).+@fax\=\[\\\"([^\\\"\]]+)/.match(line) if m info.gln = m[1].strip info.fax = strip_160(m[2]) end INFOS << info end end read_log write_file