Größe: 547
Kommentar:
|
Größe: 1395
Kommentar:
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 3: | Zeile 3: |
{{{ | {{{#!highlight bash |
Zeile 6: | Zeile 6: |
cat students.csv | while read line; do | if [ -z "$1" ]; then echo "usage $(basename $0) <csv-file>" exit -1 fi |
Zeile 8: | Zeile 11: |
NACHNAME=$(echo $line | cut -d";" -f1); VORNAME=$(echo $line| cut -d";" -f2); |
FILENAME=$1 IMPORTFILE=import_$FILENAME |
Zeile 11: | Zeile 14: |
NACHNAME_KURZ=${NACHNAME:0:3} VORNAME_KURZ=${VORNAME:0:3} |
cat $FILENAME | while read line; do |
Zeile 14: | Zeile 16: |
LOGIN=$(echo ${NACHNAME_KURZ}${VORNAME_KURZ} | iconv -f UTF-8 -t ASCII//TRANSLIT | tr A-Z a-z); | ALREADY_EXISTS="START" |
Zeile 16: | Zeile 18: |
ALREADY_EXISTS=$(getent passwd $LOGIN 1>/dev/null && echo ALREADY_EXISTS); | NACHNAME=$(echo $line | cut -d";" -f1 | cut -d " " -f1 | cut -d "-" -f1); VORNAME=$(echo $line| cut -d";" -f2 | cut -d " " -f1 | cut -d "-" -f1); |
Zeile 18: | Zeile 21: |
echo "$line;$LOGIN;`pwgen -v 8 1` !!! $ALREADY_EXISTS !!!"; done |
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 |
Benutzer-Import in GOsa²
1 #!/bin/bash
2
3 if [ -z "$1" ]; then
4 echo "usage $(basename $0) <csv-file>"
5 exit -1
6 fi
7
8 FILENAME=$1
9 IMPORTFILE=import_$FILENAME
10
11 cat $FILENAME | while read line; do
12
13 ALREADY_EXISTS="START"
14
15 NACHNAME=$(echo $line | cut -d";" -f1 | cut -d " " -f1 | cut -d "-" -f1);
16 VORNAME=$(echo $line| cut -d";" -f2 | cut -d " " -f1 | cut -d "-" -f1);
17
18 i=3;
19 while [ ! -z "$ALREADY_EXISTS" ]; do
20 NACHNAME_KURZ=${NACHNAME:0:3}
21 VORNAME_KURZ=${VORNAME:0:$i}
22
23 LOGIN=$(echo ${NACHNAME_KURZ}${VORNAME_KURZ} | iconv -f UTF-8 -t ASCII//TRANSLIT | tr A-Z a-z);
24
25 ALREADY_EXISTS=$(getent passwd $LOGIN 1>/dev/null && echo "!!! ALREADY_EXISTS !!!");
26 i=$(($i+1));
27 done
28
29 echo "$line;$LOGIN;`pwgen -v 8 1` $ALREADY_EXISTS";
30 done | tee $IMPORTFILE
31
32 echo
33
34 DUPLICATES=`cat $IMPORTFILE | while read line; do
35
36 LOGIN=$(echo $line | cut -d";" -f7);
37 grep -v "$line" $IMPORTFILE | grep "$LOGIN" 1>/dev/null && echo "$LOGIN";
38
39 done | uniq | sort`
40
41 if [ ! -z "$DUPLICATES" ]; then
42
43 echo "Doppelte Logins innerhalb dieser Liste:"
44 echo
45 echo -e $DUPLICATES | sed 's/ /\n/g'
46 echo
47 fi
48
49 echo "Die Datei für den GOsa²-Import heißt \"$IMPORTFILE\"."
50 echo