Hi Chris, Sorry, I forgot about 'cat' being a non-standard cmd. It's on this machine as part of Cygwin. The one liner you gave me works great. It can accept filenames as arguments and STDIN via a pipe. Howerver, what I am going to be doing is too complex for a one line script so I will need to put it in a .rb file. I thought the equivalent of the '-n -e "print"' one liner would be: while gets() print end but, when I put this in a file called parser.rb and try type input.txt | parser.rb I get the following: The process tried to write to a nonexistent pipe. c:/scripts/parser.rb:1:in `gets': Bad file descriptor (Errno::EBADF) from c:/scripts/parser.rb:1 Thanks, Stu
on 2006-05-18 17:02
on 2006-05-18 20:02
Maybe its a Cygwin thing, the following: type subseq.rb | ruby pipe-test.rb works fine for me. pipe-test.rb is : =begin can pipe to scipt on Win ?? i.e. dos>type file.txt | ruby -w pipe-test.rb =end while gets() print end Is the ruby a Cygwin build?
on 2006-05-18 20:25
On 5/18/06, Stuart Holden <Stuart.Holden@baring-asset.com> wrote: > print > (Errno::EBADF) > from c:/scripts/parser.rb:1 > > Thanks, > Stu > What happens if you do: type input.txt | ruby parser.rb ? I think the point may be that you have to call the ruby interpreter explicitly, rather than relying on windows file associations to do the right thing when there's a pipe involved. -A
on 2006-05-19 04:00
It's getting to ruby if a ruby exception is being thrown. Does it work w/ perl or any other language? (just curious) I would think that it woudlnt.
on 2006-05-19 09:54
A LeDonne schrieb: > What happens if you do: > > type input.txt | ruby parser.rb Thank you, this did it for me on Windows 2000 with the one click installer: type r.rb | r.rb r.rb:1:in `readlines': Bad file descriptor (Errno::EBADF) type r.rb | ruby r.rb ["p ARGF.readlines\n"] r.rb r.rb ["p ARGF.readlines\n"] Regards, Pit