/usr/share/doc/lsof/examples
NameSizeModeActions
00MANIFEST18070644editdlrm
00README20450644editdlrm
big_brother.perl5.gz20780644editdlrm
count_pf.perl18490755editdlrm
count_pf.perl520220755editdlrm
identd.perl533040755editdlrm
idrlogin.perl.gz22220644editdlrm
idrlogin.perl5.gz22700644editdlrm
list_fields.awk.gz17640644editdlrm
list_fields.perl.gz17510644editdlrm
list_NULf.perl5.gz18360644editdlrm
shared.perl5.gz35710644editdlrm
sort_res.perl537190755editdlrm
watch_a_file.perl22350755editdlrm
xusers.awk39750755editdlrm
Edit: /usr/share/doc/lsof/examples/xusers.awk (3975B)
#!/usr/bin/awk -f ################################################################ # # Program Name : xusers # Date Created : 02-27-97 # Author : Dan A. Mercer # Email : damercer@mmm.com # : # Description : Print list of users and applications signed on # : X workstations ################################################################ # standard help message function help(hlpmsg) { basename = ARGV[0] sub(/.*\//,"",basename) printf "Format: %s [o=[hi]] [s=cdlp] [pattern]\n", basename print "Print list of users and applications signed on X workstations" print "NOTE: applicationname is truncated to 9 chars" print "Arguments:" print " o=[h|i] - Options" print " h - help - print this message" print " i - case insensitive pattern search" print " s=[c|d|l|p] - Sort Options" print " c - sort by command" print " d - sort by display name" print " l - sort by login name" print " p - sort by pid" print " pattern - regex pattern to search commands against" if (length(hlpmsg)) print hlpmsg exit } BEGIN { # process command line for (i=1;i 0) { type = substr(field,1,1) sub("^.","",field) if ("p" == type) { # always output first pid = field PID[pid] = ++ct } else if ("c" == type) { # always output second XAPPL[pid] = field } else if ("L" == type) { # always output fourth USER[pid] = field } else if ("n" == type) { # may be multiple instances - we just use the last gsub(".*->|:6000","",field) DPY[pid] = field } } close(cmd) printf "%8s %5s %-9s %s\n","USER","PID","COMMAND","DISPLAY" for (pid in PID) { if (((igncase) ? tolower(XAPPL[pid]) : XAPPL[pid]) ~ pattern) printf "%8s %5d %-9s %s\n", USER[pid],pid,XAPPL[pid],DPY[pid] | sort } close(sort) exit }