From: Chad Fowler Date: 2004-03-11T09:31:18+09:00 Subject: Re: Novice question, tranlate awk code to ruby code On Mar 10, 2004, at 4:19 PM, Horacio Castellini wrote: > Hi everyone: > I'm a novice ruby user, but ancient user in Linux world. We assume > have a data file with two data field in two columns. In awk program > when I > like time them a script code may be: > > { > print $1*$2 > } > > for example I can use "% cat foo.dat|awk -f times.awk" d'accorde. Well, > how can I do this in ruby code? > Hi. Here's a very awk-like way to do it: cat foo.dat |ruby -ane 'puts $F[0].to_i * $F[1].to_i' -a autosplits and creates $F, which is an array of the fields on each line. -n creates a loop for each line of input. -e executes the next arg as a ruby program. One interesting note if you're coming from awk is that the record separator (specified by -F on the command line of both Ruby and awk) can accept a regular expression. So (for a silly example), you could have a file like this: this123123124is524234234a987234872test and executing ruby -F[0-9]+ -ane 'puts $F[3]' ...would output "test" Chad