GOAL: one-liner substitute of 5 spaces at beginning of a line.
WORKS: gsub(/^/, " ")
FAILS: gsub(/^/, 5.times {putc " "})
-example-
WORKS: $ cat foo.out | ruby -pe 'gsub(/^/, " ")'
FAILS: $ cat foo.out | ruby -pe 'gsub(/^/, 5.times{putc " "})'
I've tried variations of putc, puts, and print. All fail in different
ways.
thoughts? -- dave
using n.times with gsub
on 15.11.2005 03:45
Re: using n.times with gsub
on 15.11.2005 04:00
On Monday 14 November 2005 09:42 pm, davidpthomas@gmail.com wrote: > I've tried variations of putc, puts, and print. All fail in different > ways. cat foo.out | ruby -pe 'gsub(/^/, " " * 5) cat foo.out | ruby -pe 'gsub(/^/, (1..5).collect { " " }.join }
Re: using n.times with gsub
on 15.11.2005 04:12
On 11/15/05, davidpthomas@gmail.com <davidpthomas@gmail.com> wrote: > WORKS: $ cat foo.out | ruby -pe 'gsub(/^/, " ")' > FAILS: $ cat foo.out | ruby -pe 'gsub(/^/, 5.times{putc " "})' n.times returns n, so gsub, expecting a string instead of a number, croaks at that. I'm not sure if calling output functions inside a substitution is something you really want to do... wouldn't something like Jim's answer, or even " " * 5 make more sense? Sam
Re: using n.times with gsub
on 15.11.2005 04:15
On Tue, 15 Nov 2005 davidpthomas@gmail.com wrote: > I've tried variations of putc, puts, and print. All fail in different > ways. > > thoughts? -- dave works: harp:~ > cat a a b c harp:~ > ruby -pe ' 5.times{ gsub /^/, 32.chr } ' < a a b c simpler: harp:~ > ruby -pe ' sub /^/, 32.chr * 5' < a a b c cheers. -a
Re: using n.times with gsub
on 15.11.2005 04:18
"asdf".gsub(/^/," "*5)
Re: using n.times with gsub
on 15.11.2005 04:27
Hi -- On Tue, 15 Nov 2005, Ara.T.Howard wrote: >> > b > b > c Tiny further simplification: s/<// :-) David
Re: using n.times with gsub
on 15.11.2005 05:12
Hi,
At Tue, 15 Nov 2005 11:42:17 +0900,
davidpthomas@gmail.com wrote in [ruby-talk:165800]:
> GOAL: one-liner substitute of 5 spaces at beginning of a line.
ruby -pe 'print " "' < foo.out