Größe: 1235
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: |
{{{ (#!/bin/bash |
{{{#!highlight bash #!/bin/bash |
Zeile 6: | Zeile 6: |
ZWISCHENERGEBNIS=`tempfile` | if [ -z "$1" ]; then echo "usage $(basename $0) <csv-file>" exit -1 fi |
Zeile 8: | Zeile 11: |
cat students.csv | while read line; do | FILENAME=$1 IMPORTFILE=import_$FILENAME cat $FILENAME | while read line; do |
Zeile 27: | Zeile 33: |
done | tee $ZWISCHENERGEBNIS | done | tee $IMPORTFILE |
Zeile 29: | Zeile 35: |
echo | |
Zeile 30: | Zeile 37: |
DUPLICATES=`cat $ZWISCHENERGEBNIS | while read line; do | DUPLICATES=`cat $IMPORTFILE | while read line; do |
Zeile 33: | Zeile 40: |
grep -v "$line" $ZWISCHENERGEBNIS | grep "$LOGIN" 1>/dev/null && echo "$LOGIN"; | grep -v "$line" $IMPORTFILE | grep "$LOGIN" 1>/dev/null && echo "$LOGIN"; |
Zeile 38: | Zeile 45: |
echo | |
Zeile 42: | Zeile 49: |
echo | |
Zeile 44: | Zeile 52: |
rm -f $ZWISCHENERGEBNIS ) |
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