0
我试图以更可解析的方式格式化lsof输出。将lsof输出格式化为可解析结构
背景:由于并非所有打开句柄的进程都具有线程ID,因此不一定会确定由空格(空格AFAIS)分隔的字段数。
作为输出字段,我需要PID,UID /用户名和路径(如果它是一个文件 - 因为+ D非常慢,我在路径上寻找)。
作为字段分隔我从NL切换到NUL(和更换由空“|”为可读性)
所以,我想
> /usr/sbin/lsof -F pnuf0 | sed 's/\x0/|/g' | grep "cvmfs" | tail -n 2
ftxt|n/usr/bin/cvmfs2|
fmem|n/usr/lib64/libcvmfs_fuse.so.2.3.5|
只生成文件描述符和名称(而不是在给定顺序?)但不是PID或UID?
至于侧面说明,PID和UID领域显然已经“空”分别选择他们的时候
> /usr/sbin/lsof -F u0 | sed 's/\x0/|/g' | grep "cvmfs" | tail -n 2
> /usr/sbin/lsof -F p0 | sed 's/\x0/|/g' | grep "cvmfs" | tail -n 2
> /usr/sbin/lsof -F n0 | sed 's/\x0/|/g' | grep "cvmfs" | tail -n 2
n/usr/bin/cvmfs2|
n/usr/lib64/libcvmfs_fuse.so.2.3.5|
什么是解析为lsof的输出正确的方法“PD,NAME,UID,FILEDESC” ?