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
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel