File: show-proc-file

package info (click to toggle)
pcp 7.1.0-1
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 252,748 kB
  • sloc: ansic: 1,483,656; sh: 182,366; xml: 160,462; cpp: 83,813; python: 24,980; perl: 18,327; yacc: 6,877; lex: 2,864; makefile: 2,738; awk: 165; fortran: 60; java: 52
file content (42 lines) | stat: -rwxr-xr-x 725 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/bin/sh
#
# unpick a /proc file in the style of /proc/net/netstat
#

if [ ! -f "$1" ]
then
    echo "Usage: $0 proc-stat-file"
    exit 1
fi

tmp=/var/tmp/show-proc-file-$$
trap "rm -f $tmp.*; exit 0" 0 1 2 3 15

awk <"$1" '{print $1}' \
| sort \
| uniq -c \
| while read cnt tag
do
    if [ "$cnt" != 2 ]
    then
	echo "tag $tag appears $cnt times, not 2 as expected, skip this one"
	continue
    fi

    grep "^$tag " <$1 \
    | awk '
BEGIN		{ state = 0 }
state == 0	{ # header line
		  for (i = 2; i <= NF; i++) fld[i] = $i
		  state++
		  next
		}
state == 1	{ # data line
		  for (i = 2; i <= NF; i++) print $1 fld[i],$i
		  state++
		  next
		}' \
    | tr '[A-Z]' '[a-z]' \
    | sed -e 's/:/./' -e 's/ /	/'

done