繁体   English   中英

在R中使用linux系统命令删除特殊字符

[英]Using linux system commands in R to remove special characters

我正在尝试在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;

如果文件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"

然后您可以在system()使用sed ,就像这样

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

R系统为此具有自己的功能,而不必使用系统。 看看subgsub 使用readLines读取文件,通过subgsub对其进行编辑,然后将结果结构保存回单独的文件中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM