= Benutzer-Import in GOsa² = {{{#!highlight bash #!/bin/bash if [ -z "$1" ]; then echo "usage $(basename $0) " exit -1 fi FILENAME=$1 IMPORTFILE=import_$FILENAME cat $FILENAME | while read line; do line=$(echo $line | sed -r -e 's/(.*[0-9]{1,2})\.(1|2)([a-z]{1};.*)/\1\3/g') ALREADY_EXISTS="START" NACHNAME=$(echo $line | cut -d";" -f1 | cut -d " " -f1 | cut -d "-" -f1); VORNAME=$(echo $line| cut -d";" -f2 | cut -d " " -f1 | cut -d "-" -f1); i=3; while [ ! -z "$ALREADY_EXISTS" ]; do NACHNAME_KURZ=${NACHNAME:0:3} VORNAME_KURZ=${VORNAME:0:$i} LOGIN=$(echo ${NACHNAME_KURZ}${VORNAME_KURZ} | iconv -f UTF-8 -t ASCII//TRANSLIT | tr A-Z a-z); ALREADY_EXISTS=$(getent passwd $LOGIN 1>/dev/null && echo "!!! ALREADY_EXISTS !!!"); i=$(($i+1)); done echo "$line;$LOGIN;`pwgen -v 8 1` $ALREADY_EXISTS"; done | tee $IMPORTFILE echo DUPLICATES=`cat $IMPORTFILE | while read line; do LOGIN=$(echo $line | cut -d";" -f7); grep -v "$line" $IMPORTFILE | grep "$LOGIN" 1>/dev/null && echo "$LOGIN"; done | uniq | sort` if [ ! -z "$DUPLICATES" ]; then echo "Doppelte Logins innerhalb dieser Liste:" echo echo -e $DUPLICATES | sed 's/ /\n/g' echo fi echo "Die Datei für den GOsa²-Import heißt \"$IMPORTFILE\"." echo }}}