如何使用R将Windows换行符转换为Unix格式 优先用write.table实现
R 中使用 write.table 完成换行符格式转换的实现方法
Windows 系统换行符为 CRLF(\r\n),Unix/Linux/Mac 系统换行符为 LF(\n),通过 write.table 的 eol 参数即可直接指定输出文件的换行符类型,具体实现如下:
适用场景1:转换现有 Windows 格式的文本文件为 Unix 格式
# 读取源文件内容,skipNul 可避免特殊空字符导致的读取报错 file_content <- readLines("windows_format_input.txt", skipNul = TRUE) # 输出为 Unix 换行符格式文件 write.table( x = file_content, file = "unix_format_output.txt", eol = "\n", # 核心参数:指定行尾为 Unix 换行符 quote = FALSE, # 不对文本内容额外加双引号 row.names = FALSE, # 不输出自动生成的行序号 col.names = FALSE, # 不输出列名 na = "" # 空值直接输出为空,避免插入默认 NA 字符 )
适用场景2:直接将 R 内的数据框输出为 Unix 格式文件
# 示例数据框 demo_df <- data.frame( id = 1:5, content = c("测试1", "测试2", "测试3", "测试4", "测试5") ) # 输出为 Unix 格式的 csv 文件 write.table( x = demo_df, file = "unix_demo.csv", sep = ",", eol = "\n", quote = TRUE, row.names = FALSE, col.names = TRUE )
注意事项
- Windows 环境下运行 R 时,
write.table默认eol参数值为\r\n,必须显式指定eol = "\n"才会生成 Unix 格式文件 - 此前使用
write()生成空文件,通常是因为传入了非向量类的对象(比如数据框),write.table对不同数据结构的适配性更强,适合各类输出场景
内容的提问来源于stack exchange,提问作者Salvatore D
相关产品推荐
相关产品推荐

