Article 1 Title

bash-3.2# cat s
#!/bin/sh -u

GetLinkTargets() {

nawk '

$1~/\=/ {

target=substr($1,index($1,"=")+1)
source=substr($1,1,index($1,"=")-1)

match(source,"^.*/")
is=RLENGTH
if (is==0) {
dirname="/"
} else {
dirname=substr(source,1,is-1)
}

#print source,target,dirname

while (match(target,"^\\.\\./")>0) {

target=substr(target,4)
match(dirname,"^.*/")
is=RLENGTH
if (is==0) {
dirname="/"
} else {
dirname=substr(dirname,1,is-1)
}

}

#print "2",source,target,dirname," =>",dirname"/"target

absolute_target=dirname"/"target
#print NR,absolute_target

t_file2nsources[absolute_target]++

}

END{

for (file in t_file2nsources) printf("%4s %s\n",t_file2nsources[file],file)

}

' /var/sadm/install/contents

}

UselesPatchFilter() {

egrep -iv '/icons/|/man/|/locale/|/sounds/|/usr/dt/appconfig/|/fonts/|/devices/|/dev/|/usr/appserver/|/X11/|firefox/|/gnome/'

}

UselesPatchFilterSed() {

sed -e '{
./icons/d
}'
# -e 'g@/man/@d' \
# -e 'g@/locale/@d' \
# -e 'g@/sounds/@d' \
# -e 'g@/usr/dt/appconfig/@d' \
# -e 'g@/fonts/|/devices/@d' \
# -e 'g@/dev/@d' \
# -e 'g@/usr/appserver/@d' \
# -e 'g@/X11/@d' \
# -e 'g@/firefox/@d' \
# -e 'g@/gnome/@d'

}


GetLinkTargets | UselesPatchFilterSed | sort -n
bash-3.2#
 
bash-3.2# ./s | tail -40
7 /opt/SUNWmlib/lib/amd64/./libmlib.so.2
7 /opt/SUNWmlib/lib/i386/./libmlib.so.2
7 /opt/SUNWmlib/lib/sse2/./libmlib.so.2
7 /usr/dt/app-defaults/./fr.UTF-8
7 /usr/dt/config/./fr.UTF-8
7 /usr/dt/lib/nls/msg/./fr.UTF-8
7 /usr/lib/iconv/./ko_KR-UTF-8%ko_KR-euc.so
7 /usr/lib/iconv/./ko_KR-euc%ko_KR-UTF-8.so
7 /usr/lib/iconv/amd64/./ko_KR-UTF-8%ko_KR-euc.so
7 /usr/lib/iconv/amd64/./ko_KR-euc%ko_KR-UTF-8.so
7 /usr/share/lib/terminfo/2/2621
7 /usr/share/lib/terminfo/2/2624
7 /usr/share/lib/terminfo/2/2626
7 /usr/share/lib/terminfo/4/4024
8 /usr/kernel/pcbe/amd64/pcbe.GenuineIntel.6.15
8 /usr/kernel/pcbe/pcbe.GenuineIntel.6.15
8 /usr/lib/iconv/646%8859.so
8 /usr/lib/iconv/amd64/646%8859.so
9 /etc/gtk/gtkrc.iso-8859-2
9 /etc/lib/lu/ludo
9 /usr/share/lib/zoneinfo/Etc/GMT
12 /lib/amd64/libcurses.so.1
12 /lib/libcurses.so.1
12 /usr/lib/iconv/geniconvtbl/binarytables/8859-16%ibm850.bt
12 /usr/lib/iconv/geniconvtbl/binarytables/8859-16%ibm870.bt
12 /usr/lib/iconv/geniconvtbl/binarytables/ibm850%8859-16.bt
12 /usr/lib/iconv/geniconvtbl/binarytables/ibm870%8859-16.bt
13 /usr/dt/app-defaults/./fr
13 /usr/dt/config/./fr
13 /usr/dt/lib/nls/msg/./fr
13 /usr/dt/share/backdrops/desc.fr
13 /usr/dt/share/palettes/desc.fr
16 /usr/bin/alias
16 /usr/lib/iconv/geniconvtbl/binarytables/8859-16%8859-2.bt
16 /usr/lib/iconv/geniconvtbl/binarytables/8859-2%8859-16.bt
16 /usr/xpg4/bin/alias
17 /usr/sfw/lib/mozilla/scripts/./mozlocale-config.fr.sh
28 /usr/bin/i286
37 /usr/openwin/sfw/server/lib/modules/ddxSUNWxf86.so.1
68 /usr/lib/isaexec
bash-3.2#