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