运行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