从R调用sed时转义引号

时间:2014-01-07 01:07:53

标签: r sed quotes

从终端呼叫时,

sed -i -e 's/^/#\x27 /' file

通过在每行的开头插入file来修改#'。但我想在R内做到这一点。首先,我注意到执行字符串

"sed -i -e \'s/^/#\x27 /\' file"
R中的

返回

"sed -i -e 's/^/#' /' file"

问题是\x27已被解释,所以我想要的命令

system("sed -i -e \'s/^/#\x27 /\' file")

失败,并显示有关未终止字符串的错误消息。如何从sed内将R命令传递给命令行?

1 个答案:

答案 0 :(得分:4)

这不是我的设备(Mac)上的sed命令所发生的情况。我使用sed获得相同的行为,因为我将反斜杠加倍(即逃避反斜杠:

system("sed -i -e 's/^/#\\x27 /\' file.txt")

在这两种情况下,我都会在文中看到#\ x27。