2014-01-07 50 views
2

調用的sed當從終端通過在每一行的開始處插入#'調用,逃逸報價而來自R

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內傳遞到命令行?

回答

4

這不是我的設備(Mac)上的sed命令發生的情況。我得到同樣的行爲只用sed的,因爲我有加倍反斜槓(即轉義反斜槓得到:

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

在這兩種情況下,我看到#\ X27在文本

+0

你完全正確的提示我應該在\ x27之前加入額外的反斜槓,我甚至想過嘗試這樣做,但是注意到你提供給'system'的字符串的計算結果與R中的原始命令不同,所以我從來沒有嘗試過! – zkurtz