如何在Unix中移除文件引号或在R中生成无引号文件?
在R中直接生成无引号文件
问题根源是write.table()默认会给字符串添加引号(quote = TRUE),只需在导出时显式关闭该参数,就能直接生成不带引号的文件。结合unite的完整示例:
library(tidyverse) # 模拟含两列数字的数据集 df <- tibble(num1 = c(60, 70, 80), num2 = c(0, 1, 2)) # 合并为空格分隔的单变量 df_united <- df %>% unite(col = combined, num1, num2, sep = " ") # 导出为制表符分隔文件,禁用引号 write.table(df_united, "output.txt", sep = "\t", quote = FALSE, row.names = FALSE, col.names = FALSE)
quote = FALSE:核心参数,彻底关闭引号自动添加逻辑row.names = FALSE/col.names = FALSE:根据需求选择是否保留行名/表头(匹配你提到的file1.txt格式)
在Unix终端移除文件中的引号
你之前的sed命令失败是因为错误使用了变量输入重定向,正确操作方式如下:
单个文件处理
# 直接修改原文件 sed -i 's/^"//; s/"$//' file2.txt # 保留原文件,输出到新文件 sed 's/^"//; s/"$//' file2.txt > cleaned_file2.txt
s/^"//:删除行首的引号s/"$//:删除行尾的引号
批量处理所有txt文件
# Linux系统 for file in *.txt; do sed -i 's/^"//; s/"$//' "$file" done # macOS(BSD sed)需加空后缀 for file in *.txt; do sed -i '' 's/^"//; s/"$//' "$file" done
内容的提问来源于stack exchange,提问作者David R
相关产品推荐
相关产品推荐

