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」 ?