R 的 pipe() 函数和 Ubuntu 控制台给出不同的结果

标签 r linux docker ubuntu

我在我的 Ubuntu 机器上使用最新配置的 R

在 R 中,我得到以下结果:

> read.fwf(pipe('ps -ef | grep /var/lib/docker/'), width = 60)
                                                            V1
1 root     29155 29151  0 11:18 pts/0    00:00:00 sh -c ps -ef
2 root     29157 29155  0 11:18 pts/0    00:00:00 grep /var/li

但是在 Ubuntu 控制台中我得到不同的结果

ps -ef | grep /var/lib/docker/
root     29150  2509  0 11:17 pts/0    00:00:00 grep --color=auto /var/lib/docker/

我想让 R 获取 /var/lib/docker/PID,这是根据 Ubuntu 2509

谁能帮我理解为什么我得到不同的结果以及如何正确获取 PID 号?

谢谢,

最佳答案

使用ps包中的ps()。此函数输出带有进程 ID 信息的数据框。

library(ps)

pid_df <- ps()
pid_df$pid[grep("docker", pid_df$name)]

或在一行中:

subset(ps(), grep("docker", name))$pid

关于R 的 pipe() 函数和 Ubuntu 控制台给出不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55161269/

相关文章:

R : define a function within a function

r - 从参数相关的线性模型模拟 R 中的数据

python - Python 在 Linux 中选择和处理 EINTR 的任何解决方法?

docker - ddev:从另一个容器调用Web容器的某个端口的端点

r - 将数据框列设置为 R data.frame 对象的索引

r - 按因子级别插入缺失的行

linux - 在特定目录中设置环境变量

linux sed,同时插入和追加

docker - 了解 Docker 网络隔离

docker - Kubernetes-需要帮助-失败的安装3分38秒