“你怎么看?”;加入;bash脚本中两个unix命令的结果?

“你怎么看?”;加入;bash脚本中两个unix命令的结果?,bash,Bash,下面返回与应用程序中的套接字关联的所有文件描述符的列表: ls -haltr /proc/$PID/fd/ | cut -f3 -d":" | cut -f2 -d"[" | cut -f1 -d"]" | grep '^[0-9][0-9]*$' | sort -h 文件描述符的编号与netstat中使用-e标志找到的编号相同,它是最后一列: netstat -ante tcp 0 0 1.9.146.125:41460 192.28.1.48:443 ESTABLISH

下面返回与应用程序中的套接字关联的所有文件描述符的列表:

ls -haltr /proc/$PID/fd/  | cut -f3 -d":" | cut -f2 -d"[" | cut -f1 -d"]"  | grep '^[0-9][0-9]*$'  | sort -h
文件描述符的编号与netstat中使用
-e
标志找到的编号相同,它是最后一列:

netstat -ante
tcp    0  0 1.9.146.125:41460  192.28.1.48:443   ESTABLISHED 0   83999      
tcp    0  0 1.9.146.125:59270  192.28.7.28:443   ESTABLISHED 0   58975      
tcp    0  0 1.9.146.125:34948  192.28.14.8:443   ESTABLISHED 0   67916      

如何将两者连接在一起,以便只看到与文件描述符匹配的行?

我最终通过反复试验找到了一种方法。不过,我打赌有更好的方法:

arr=(`ls -haltr /proc/2293/fd/  | cut -f3 -d":" | sort -u | \
  cut -f2 -d"[" | cut -f1 -d"]"  | grep '^[0-9][0-9]*$'  | sort -h`); \
  pat=$(echo ${arr[@]}|tr " " "|"); netstat -ante | grep -Ew "($pat)"

也可以使用
join
命令。分号和反斜杠似乎是多余的-一行是一个贬义词,而不是赞美词。我不知道Join命令,谢谢。我会查的;反斜杠只是为了让它在堆栈溢出时可读;我对“一号线”这个词没有情感上的联想(好或坏)。根本的问题是什么?获取给定PID的打开连接的地址?基本上,我想知道如何根据结果中的一列连接两个bash命令的输出。但是,是的,我正在努力找出这个应用程序(pid)连接到了什么。