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
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 5/18/06, Stuart H. [email protected] 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
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.
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