#!/bin/sh set -e find_names() { zcat -f "$@" | sed -n '/^\.SH NAME/,/^\.SH SYNOPSIS/p' | grep -v '^\.SH ' | tr '\12' ' ' | sed 's/ \\- .*//' | tr , ' ' | sed 's/ */ /g' } for name in `find_names "$1"` do tgt="$2/$name.$3.gz" if [ ! -f $tgt -a ! -L $tgt ] then (cd $2 && ln -sf `basename $1`.gz $name.$3.gz) fi done