From: "Jesús Gabriel y Galán" Date: 2009-04-28T03:59:46+09:00 Subject: Re: Group several lines into one line On Mon, Apr 27, 2009 at 8:25 PM, Dirk Dre wrote: > After sitting at this problem for hours without much progress, now is > the time that I need your help. Btw. I'm quite new to ruby. > > I have a file that looks like this: > > 00-04-00;Austragungssystem für längliche oder > 00-04-00;quadratische Lagerräume inklusive 3- > 00-04-00;poligen Wielandstecker/Gegenstecker > 00-04-00;Technische Daten: > 00-04-00;Elektrischer Anschluss: 230V / 50Hz > 00002274;Wilo Temperaturfühler TF > 00002274;Temperaturschalter mit Einstellknopf > 00002274;einschließlich 2 Stück Federspannbändern > 00002274;zum Anlegen an Rohre bis DN 100. > 00002274;Max. Betriebsspannung: 250 V > 00002274;Max. Schaltleistung: 4 A > 00002274;Schutzart: IP 43 > 00002274;Schaltbereich: 30 oC bis 90 oC > 00002274;Fabrikat: WILO > 00002274;Typ: Temperaturschalter TF > > what i need is to group lines with the same serialnumber > (eg. 00-04-00, 00002274) into one line like this: > > 00-04-00;Austragungssystem für längliche oder quadratische Lagerräume > inklusive 3-poligen Wielandstecker/Gegenstecker Technische Daten: > Elektrischer Anschluss: 230V / 50Hz Something like this (untested) might get you started: s = "00-40..." #your string h = Hash.new {|h,k| h[k] = ""} s.each do |line| key, value = line.split(";") h[key] << value.chomp end This will give you a hash where the keys are the serial numbers and the values, the concatenated parts that correspond to that serial number. Jesus.