R:使用 cat() 获取类 Unix 换行符 LF 写入文件

R: Getting Unix-like linebreak LF writing files with cat()

我尝试将字符向量写入 Windows 7 / R 3.2.2 x64 下的文本文件,我想要 unix LF - 而不是 Windows CRLF:

v <- c("a","b","c")
cat(nl,file="textfile.txt",sep="\n")

> a[CRLF] 
> b[CRLF] 
> c[CRLF]

cat(paste(nl,sep="\n",collapse="\n"),file="t2.txt")

> a[CRLF] 
> b[CRLF] 
> c

我也试过 write.table(eol="\n") - 没有成功,因为它似乎在内部使用 cat。

我已经在寻找其他解决方法; 我试图找到某事。在 R\src\main\scan.c 中,在第 387ff 行找到相关代码。

有人知道如何在我的输出文件中获得类似 UNIX 的 LF 吗?

尝试以 "binary" 模式(而不是 "text" 模式)打开文件连接以防止行尾的系统相关编码:

v <- c("a","b","c")
f <- file("textfile.txt", open="wb")
cat(v,file=f,sep="\n")
close(f)

根据@xb的回答

converter <- function(infile){
    print(infile)
    txt <- readLines(infile)
    f <- file(infile, open="wb")
    cat(txt, file=f, sep="\n")
    close(f)
}