2015-08-09 76 views
3

慶典:的R - 系統與多個管道命令不返回標準輸出

ps -aux | grep -E "^.*\b[^grep](python).*(runserver).*$" 2>/dev/null | tr -s " " | cut -d " " -f 2 

它返回正確的結果。 (例如)

1450 
1452 

在R此相同的代碼

vLog <- system('ps -aux | grep -E "^.*\b[^grep](python).*(runserver).*$" 2>/dev/null | tr -s " " | cut -d " " -f 2', intern = TRUE) 

回報character(0)

回答

3

只需更換\b\\b也知道[^grep]它匹配任何字符,但不是grep

vLog <- system('ps -aux | grep -E "^.*\\b[^grep](python).*(runserver).*$" 2>/dev/null | tr -s " " | cut -d " " -f 2', intern = TRUE) 

實施例:

> system('ps -aux | grep -E "^.*\\bpython" 2>/dev/null | tr -s " " | cut -d " " -f 2', intern = TRUE) 
[1] "2519" "2526" "3285" "3291" 
> system('ps -aux | grep -E "^.*\bpython" 2>/dev/null | tr -s " " | cut -d " " -f 2', intern = TRUE) 
character(0) 
相關問題