#!/bin/sh dn="dc=boston, dc=redhat, dc=com" inmap() { infile=$1 div=$2 shift 2 while test $# -ge 2 ; do grep -v "^#" $infile | awk -F"$div" ' BEGIN { print "dn: nisMapName='"$1"', '"$dn"'"; print "objectClass: nisMap"; print "nisMapName:", "'"$1"'"; print ""; } { print "dn: cn=" $'"$2"' ", nisMapName='"$1"', '"$dn"'"; print "objectClass: nisObject"; print "nisMapName: '"$1"'"; print "cn:", $'"$2"'; print "nisMapEntry:", $0; print ""; }' shift 2 done } outmap() { infile=$1 map=$2 grep -v "^#" $infile | awk ' BEGIN { print "dn: nisMapName='"$map, $dn"'"; print "objectClass: nisMap"; print "nisMapName: '"$map"'"; print ""; } { print "dn: cn=" $1 "'", nisMapName=$map, $dn"'"; print "objectClass: nisObject"; print "nisMapName: '"$map"'"; print "cn:", $1; $1=""; print "nisMapEntry:" $0; print ""; }' } inmap /etc/passwd : passwd.byname 1 passwd.bynumber 3 inmap /etc/group : group.byname 1 group.bynumber 3 outmap /etc/auto.master auto.master