[Rd] Write unix format files on windows and vice versa
Duncan Murdoch
murdoch.duncan at gmail.com
Tue Apr 24 19:48:13 CEST 2012
On 24/04/2012 1:23 PM, Andrew Redd wrote:
> I go back and forth between windows and linux, and find myself running
> into problem with line endings. Is there a way to control the line
> ending conversion when writing files, such as write and cat? More
> explicitly I want to be able to write files with LF line endings
> rather than CRLF line ending on windows; and CRLF line endings instead
> of LF on linux, and I want to be able to control when the conversion
> is made and/or choose the line endings that I want.
>
> As far as I can tell the conversion is not optional and buried deep in
> compiled code. Is there a possible work around?
On Windows you will write CRLF if the file was opened as a text file,
and LF only if it was opened as a binary file. For example:
writeLines(letters, "crlf.txt")
con <- file("lf.txt", open="wb")
writeLines(letters, con)
close(con)
On Unix you can write CRLF by specifying that as the sep arg. So the
following will work on both systems:
con <- file("crlf.txt", open="wb")
writeLines(letters, con, sep="\r\n")
close(con)
(and the explicit connection isn't really necessary on Unix, but it is
on Windows).
If you're not using the writeLines() function, it's probably a bit
harder to set CRLF as a default on Unix than it is to set LF as a
default on Windows.
Duncan Murdoch
More information about the R-devel
mailing list