【发布时间】:2019-06-24 18:18:35
【问题描述】:
我可以在我的 bash shell 中运行这个命令。该命令向 API 发出请求以压缩图像,并从 API 获得响应而没有问题:
curl https://my.api.com --user api:mypassword --data-binary @/Users/myUsername/MyDirectoryName\ \(abc\)/test/my/file.png --dump-header /dev/stdout
在 R 脚本中,当我尝试在 R 的 system (docs) 中运行相同的命令时,如下所示:
system("curl https://my.api.com --user api:mypassword --data-binary @/Users/myUsername/MyDirectoryName\ \(abc\)/test/my/file.png --dump-header /dev/stdout", intern = T)
我收到一条错误消息:
Error: '\(' is an unrecognized escape in character string starting "curl https://my.api.com --user api:mypassword --data-binary @/Users/myUsername/MyDirectoryName\ \("
我无法控制目录名称及其空格和特殊字符,例如( 和 )。
我需要如何更改传递给system 的命令字符串?如果这是我认为的字符转义问题,我将如何执行转义?
谢谢
【问题讨论】:
-
也许是@zx8754,但我是 R 新手,所以希望能更详细地了解您的意思。交易
-
我认为你需要转义“转义字符”,或者转义“不是转义但在 R 中用作转义的字符”,希望这是有道理的。我将添加“正则表达式”标签,希望能吸引到更好的答案。
-
很困惑,因为我可以这样做:system("open '/Users/myUsername/MyDirectoryName\ (abc)/test/my/file.png'")。