首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fuser命令输出进程ID提取

fuser命令输出进程ID提取
EN

Stack Overflow用户
提问于 2020-09-29 09:44:09
回答 1查看 800关注 0票数 0

尝试从fuser输出中提取使用给定端口号的进程ID,如下所示

代码语言:javascript
复制
$ fuser 9092/tcp
9092/tcp:             5920

使用awk提取PID没有发生

代码语言:javascript
复制
$ fuser 9092/tcp | awk -F: '{print $2}'
9092/tcp:

从提取的PID中,我想做ls -l /proc/5920/exe,比如

代码语言:javascript
复制
ls -l /proc/$(fuser 9092/tcp | awk -F: '{print $2}')/exe

二进制文件的版本如下:

代码语言:javascript
复制
bash --version  # GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)
fuser --version  # fuser (PSmisc) 22.20
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-29 10:07:44

fuser输出的非正式部分进入标准错误。输出到标准输出已经是计算机可读的了.(这是一个特性,而不是一个bug。)

简单地说,您可以重定向标准错误,以消除stderr输出,如果您认为它是无用的或分心的。

代码语言:javascript
复制
$ fuser 9092/tcp 2>/dev/null
5920

您可以很容易地通过管道(如nl )为自己建立这一系统。

代码语言:javascript
复制
$ fuser 9092/tcp | nl
9092/tcp: 
1       5920

注意9092/tcp:输出是如何没有行号的--它不是通过管道传输到nl的。

所以你的实际代码看起来

代码语言:javascript
复制
ls -l /proc/$(fuser 9092/tcp 2>/dev/null)/exe

(虽然通常是don't use ls in scripts.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64117005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档