我正在尝试使用R
中的linux系统命令清理文件我想使用除了文件分隔符(管道分隔)
之外删除特殊字符的命令在下面的示例中,它是我试图摆脱的斜杠和其他引号
1234|"PJDG"|"CHOCOLATES"|"CHOCOLATE CAKE"
1256|"GADG"|"CAKE \"HA"|"SPECIAL \"HAPPY CHRISTMAS\""
7657|"ASGD"|"WINE"|"RED WINE"
6777|"DAG"|"FRUIT"|"APPLES/LOOSE"
我使用了下面的命令,但它似乎没有删除字符。
sed's / \“?// g'input_file.txt> output_file.txt;
答案 0 :(得分:3)
如果文件x.txt
看起来像这样
cat(readLines("x.txt"), sep = "\n")
# 1234|"PJDG"|"CHOCOLATES"|"CHOCOLATE CAKE"
# 1256|"GADG"|"CAKE \"HA"|"SPECIAL \"HAPPY CHRISTMAS\""
# 7657|"ASGD"|"WINE"|"RED WINE"
# 6777|"DAG"|"FRUIT"|"APPLES/LOOSE"
然后您可以在sed
中使用system()
,就像这样
system("sed -e 's|[\\\"]||g' x.txt")
# 1234|PJDG|CHOCOLATES|CHOCOLATE CAKE
# 1256|GADG|CAKE HA|SPECIAL HAPPY CHRISTMAS
# 7657|ASGD|WINE|RED WINE
# 6777|DAG|FRUIT|APPLES/LOOSE
您可以将其写入文件。或者,如果要返回R向量,请将intern = TRUE
添加到呼叫
答案 1 :(得分:2)
R系统有自己的功能,不需要使用系统。查看sub
,gsub
。使用readLines
阅读您的文件,按sub
或gsub
进行修改,然后将生成的结构保存回单独的文件中。