create file with LF (not CRLF) in windows

B

Ben Anderson

Hi,
I have a bunch of files that I want to convert from CRLF to just LF.=20
How might I do this? I'm testing with the following example file
(steel.rb):

f =3D File.new("steel", "w")
f.syswrite("steel\ncity");
f.close

I then run this from cygwin and get the following output

Ben Anderson@andersonbd1 /cygdrive/c/ruby
$ ruby steel.rb

Ben Anderson@andersonbd1 /cygdrive/c/ruby
$ cat -v steel
steel^M
city

How might I get rid of the CR and just have ruby use an LF?
Thanks,
Ben
 
B

Bill Kelly

From: "Ben Anderson said:
I have a bunch of files that I want to convert from CRLF to just LF.
How might I do this? I'm testing with the following example file
(steel.rb):

f = File.new("steel", "w")
f.syswrite("steel\ncity");
f.close

Try in "binary" mode.

f = File.new("steel", "wb")

BTW, if you use blocks, you can omit the f.close:

File.new("steel", "wb") do |f|
f.print("steel\ncity")
end


(See also IO#binmode )


Regards,

Bill
 
J

John W. Kennedy

Ben said:
Hi,
I have a bunch of files that I want to convert from CRLF to just LF.
How might I do this? I'm testing with the following example file
(steel.rb):

f = File.new("steel", "w")
f.syswrite("steel\ncity");
f.close

I then run this from cygwin and get the following output

Ben Anderson@andersonbd1 /cygdrive/c/ruby
$ ruby steel.rb

Ben Anderson@andersonbd1 /cygdrive/c/ruby
$ cat -v steel
steel^M
city

How might I get rid of the CR and just have ruby use an LF?

Just as in many other languages, use "wb" instead of "w".

--
John W. Kennedy
"But now is a new thing which is very old--
that the rich make themselves richer and not poorer,
which is the true Gospel, for the poor's sake."
-- Charles Williams. "Judgement at Chelmsford"
 
B

Ben Anderson

yes - there it is. Thanks Bill.

Try in "binary" mode.

f =3D File.new("steel", "wb")

BTW, if you use blocks, you can omit the f.close:

File.new("steel", "wb") do |f|
f.print("steel\ncity")
end


(See also IO#binmode )


Regards,

Bill
 
J

Jason Sweat

yes - there it is. Thanks Bill.

Perhaps it makes a difference which binary you use, windows vs.
cygwin. I am usign the cygwin Ruby and it did not exhibit the
behavior you mentioned.

Regards,
Jason
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,201
Messages
2,571,049
Members
47,654
Latest member
LannySinge

Latest Threads

Top