'lsof -i`的逆

运行lsof -i (不带lsof -i参数)“select所有Internet和x.25(HP-UX)networking文件的列表。 我正在寻找一种可靠的方法来做相反的事情:显示除Internet文件以外的所有内容。 通过可靠的,我的意思是一种只需要运行一次的方法 。 随后的两次运行(即正常的lsof然后是lsof -i以便比较)是不可靠的,因为stream失的可能性很大。

提前致谢!

怎么样:

 lsof | awk '$5 !~ /IPv[46]/{print}' 

sudo lsof | grep -v IPv4 | grep -v IPv6

这会为你工作吗? 这将只排除什么-i列表。

我很快通过这个一起,所以质量可能不达标。

这个Python脚本读取从“lsof”命令返回的每一行,并检查以确保“TYPE”列专门不包含“IPv4”或“IPv6”。

 #!/usr/bin/env python from sys import stdin from re import search def main(): lsof = stdin.read().strip() final_files = [lsof.split('\n')[0]] for line in lsof.split('\n')[1:]: if not search(r'.*(IPv4|IPv6).*', line.split()[4]): final_files.append(line) print '\n'.join(final_files) if __name__ == '__main__': main() 

你可以像这样执行它:

 lsof | ./inverse_lsof.py