Map von csv aus Adressbook nach LDAP.ldif mit der Bash
Hallo Liste, Ich habe ein Liste als Export vom Adressbook und möschte sie Umformen Das Zeilen weiße Auslesen geht aber das spilten der verschieden Anteile bekomme ich nicht ihn ;-( Die erst Test und Versuch Leider ohne Efolg: #!/bin/bash # grep "," first | awk -v tag="\,"$PARAM 'BEGIN { totalgesamt=0 } while read linie do echo $linie # split "," $linie; # sed -n -e '/^Geraete-Info:$/,/^:$/p' <$line > $tempo1 # echo $linie | awk 'BEGIN { anddzadress=0 } # NF >= 1 { # anzadress=anzadress+1 # print $1 # n=split($1,d,",") # print n ", Anzzahl Adressen=" anzadress # print "First Name:"d[1] # print "Last Name:"d[2] # print "Middle Name:"d[3] # print "Name Prefix:"d[4] # print "Job Title:"d[5] # print "Company:"d[6] # print "Nickname:"d[7] # print "Note:"d[8] # print "Business Phone:"d[9] ## print "Home Phone:"d[10] # }' done < addressbook.csv Das ist doch schon gemacht worden. Grüße Patrice -- Patrice Staudt Linux System, Wintringerstraße 67,D-66271 Kleinblittersdorf Tel: 06805-3286, http://engsystem.net/
Hallo, On Tue, 18 Mar 2003, Patrice Staudt wrote:
Ich habe ein Liste als Export vom Adressbook und möschte sie Umformen Das Zeilen weiße Auslesen geht aber das spilten der verschieden Anteile bekomme ich nicht ihn ;-( [..]
awk -F',' ' NF > 0 { anzaddress++; firstname=$1; lastname=$2; #[..] homephome=$10; }' < adressbook.csv -dnh -- "The idea that Bill Gates has appeared like a knight in shining armour to lead all customers out of a mire of technological chaos neatly ignores the fact that it was he who, by peddling second-rate technology, led them into it in the first place." -- Douglas Adams in Guardian, 25-Aug-95
Hallo David , Vielen Dank , man sieht nicht mehr mit Tomaten auf den Augen. Ich muß die Besonderheit noch rausfiltern dann sollte es gehen. Im Ldap habe ich Leider Problem mit Ö ß é und so weiter Vielen Dank für deine Hilfe. Grüße Patrice -- Patrice Staudt Linux System, Wintringerstraße 67,D-66271 Kleinblittersdorf Tel: 06805-3286, http://engsystem.net/
Hallo Patrice,
Patrice Staudt
Hallo David ,
Vielen Dank , man sieht nicht mehr mit Tomaten auf den Augen. Ich muß die Besonderheit noch rausfiltern dann sollte es gehen. Im Ldap habe ich Leider Problem mit Ö ß é und so weiter
Die deutschen Umlaute und Sonderzeichen sowie die französischen Accents kannst mittels unicode UTF-8 im Ldapserver eintragen. Dazu mußt du latin-1 kodierte Fonts nach UTF-8 wandeln, das geht einfach mit /usr/bin/iconv, also z.B. iconv --from-code iso8859-1 --to-code utf-8 --output datei.utf-8.ldif deine.ldif -Dieter -- Dieter Kluenter | Systemberatung Tel:040.64861967 | Fax: 040.64891521 mailto: dkluenter@schevolution.com http://www.schevolution.com/tour
Hallo Dieter , Vielen Dank Super :-)) Es geht die Adressen mussen Leider Trosst dem nach gearbeitet werden Outlook Export und Nachbearbeitung in excel haben Ihre Spuren gelassen : geht doch nicht immer richtig. Grüße Patrice
Im Ldap habe ich Leider Problem mit Ö ß é und so weiter
Die deutschen Umlaute und Sonderzeichen sowie die französischen Accents kannst mittels unicode UTF-8 im Ldapserver eintragen. Dazu mußt du latin-1 kodierte Fonts nach UTF-8 wandeln, das geht einfach mit /usr/bin/iconv, also z.B. iconv --from-code iso8859-1 --to-code utf-8 --output datei.utf-8.ldif deine.ldif
-- Patrice Staudt Linux System, Wintringerstraße 67,D-66271 Kleinblittersdorf Tel: 06805-3286, http://engsystem.net/
Hallo Patrice,
Patrice Staudt
Hallo Dieter ,
Vielen Dank Super :-)) Es geht die Adressen mussen Leider Trosst dem nach gearbeitet werden Outlook Export und Nachbearbeitung in excel haben Ihre Spuren gelassen : geht doch nicht immer richtig.
[...]
Wie geht es deiner Linuxette :-)
Dein Windows Problem kenne ich zwar, kann dir aber keinen Rat
geben. Das Problem liegt darin, daß Windows Programme als Zeilenende
oder -umbruch
Hallo, On Thu, 20 Mar 2003, Dieter Kluenter wrote:
Dein Windows Problem kenne ich zwar, kann dir aber keinen Rat geben. Das Problem liegt darin, daß Windows Programme als Zeilenende oder -umbruch
setzen, also Linefeed und Carriage Return, das kann aber ein Unixeditor nicht richtig übersetzen.
Bitte? XEmacs macht das automatisch richtig. -dn'*scnr*'h -- (I was going to continue with an essay on the subject of the POSIX tty interface, but then decided that the list's honourable readership might be getting bored by now.) (Multiple bracketed paragraphs usually indicate a severe lack of focus.) -- Juliusz Chroboczek on devel@xfree86.org
Hallo,
David Haller
Hallo,
On Thu, 20 Mar 2003, Dieter Kluenter wrote:
Dein Windows Problem kenne ich zwar, kann dir aber keinen Rat geben. Das Problem liegt darin, daß Windows Programme als Zeilenende oder -umbruch
setzen, also Linefeed und Carriage Return, das kann aber ein Unixeditor nicht richtig übersetzen. Bitte? XEmacs macht das automatisch richtig.
Jein, du weißt, daß ich ein XEmacs-Verfechter bin, aber zwischen darstellen und in ldif Format wandeln besteht ein Unterschied. Zur Information, ldif ist ein um Sonderzeichen erweiterter ascii String in UTF-8 Format, also die unicode Zeichen 0x00 bis 0x7F, LF/CR gehört nicht zu diesem Zeichensatz. -Dieter P.S. Die Beschreibung von ldif ist sehr verkürzt dargestellt, daher bitte keine Flames. -- Dieter Kluenter | Systemberatung Tel:040.64861967 | Fax: 040.64891521 mailto: dkluenter@schevolution.com http://www.schevolution.com/tour
On Don, 20 Mär 2003 at 13:38 (+0100), Dieter Kluenter wrote: [...]
Dein Windows Problem kenne ich zwar, kann dir aber keinen Rat geben. Das Problem liegt darin, daß Windows Programme als Zeilenende oder -umbruch
setzen, also Linefeed und Carriage Return, das kann aber ein Unixeditor nicht richtig übersetzen.
cat datei | tr -d '\r' >datei.neu && mv datei.neu datei Und ja: diesmal muss das cat vorneweg laufen, tr liest nur stdin ;-) Jan
Hallo, On Thu, 20 Mar 2003, Jan Trippler wrote:
On Don, 20 Mär 2003 at 13:38 (+0100), Dieter Kluenter wrote: [...]
Dein Windows Problem kenne ich zwar, kann dir aber keinen Rat geben. Das Problem liegt darin, daß Windows Programme als Zeilenende oder -umbruch
setzen, also Linefeed und Carriage Return, das kann aber ein Unixeditor nicht richtig übersetzen. cat datei | tr -d '\r' >datei.neu && mv datei.neu datei
Useless use of cat! Und das von dir...
Und ja: diesmal muss das cat vorneweg laufen, tr liest nur stdin ;-)
Wie kommst du auf diese duenne Brett? tr -d '\r' < datei > datei.neu $ strace -f -eexecve,fork -s 2 sh -c "cat /tmp/rpmlist | tr -d '\n' >/dev/null" execve("/bin/sh", ["sh", "-c", "cat /tmp/rpmlist | tr -d \'\\n\' >/dev/null"], [/* 89 vars */]) = 0 fork() = 1032 [pid 1032] execve("/bin/cat", ["c"..., ...], [/* 87 vars */]) = 0 [pid 1031] fork() = 1033 [pid 1033] execve("/usr/bin/tr", ["t"..., ...], [/* 87 vars */]) = 0 --- SIGCHLD (Child exited) --- $ strace -f -eexecve,fork -s 2 sh -c "tr -d '\n' /dev/null" execve("/bin/sh", ["sh", "-c", "tr -d \'\\n\' /dev/null"], [/* 89 vars */]) = 0 fork() = 1038 [pid 1038] execve("/usr/bin/tr", ["t"..., ...], [/* 87 vars */]) = 0 --- SIGCHLD (Child exited) --- Erklaerung: tr liest von stdin. Ja. Aber ob die Daten nun via Pipe oder via Eingabeumleitung da landen ist tr herzlich egal und tr hat auch keine Moeglichkeit das zu unterscheiden. Die shell muss im Falle der Pipe stdout von cat auf stdin von tr biegen, ansonsten schlicht stdin von tr mit der Eingabedatei verbinden. Les dir mal die Ausgaben von: strace -f -e'!signal' sh -c "cat Datei | tr -d '\n' >/dev/null" und strace -f -e'!signal' sh -c "tr -d '\n' < Datei >/dev/null" durch... Interessant wird's jew. um das erste 'fork()'. Bei der Umleitung z.B.: ==== schnipp ==== fork() = 1140 [pid 1140] open("/tmp/rpmlist", O_RDONLY|O_LARGEFILE) = 3 [pid 1140] dup2(3, 0) = 0 [pid 1140] close(3) = 0 [pid 1140] open("/dev/null", O_WRONLY|O_CREAT|O_TRUNC|O_LARGEFILE, 0666) = 3 [pid 1140] dup2(3, 1) = 1 [pid 1140] close(3) = 0 [pid 1140] execve("/usr/bin/tr", ["tr", "-d", "\\n"], [/* 87 vars */]) = 0 ==== schnapp ==== So macht die shell also das Umbiegen der Dateideskriptoren '< /tmp/rpmlist' bzw. '> /dev/null' _bevor_ tr dann ausgefuehrt wird. Mit der Pipe ist's a weng komplexer ;) -dn'*scnr*'h -- 164: Informatiker -- Informatiker sind Geisteswissenschaftler und keine Naturwissenschaftler! Deshalb haben Informatiker zwar den "Rang" eines Ingenieures, sind aber eigentlich keine. IMHO können sie den "Titel" aber auf Antrag bekommen. (Christine Lohr)
On Fre, 21 Mär 2003 at 04:51 (+0100), David Haller wrote:
Hallo,
On Thu, 20 Mar 2003, Jan Trippler wrote:
On Don, 20 Mär 2003 at 13:38 (+0100), Dieter Kluenter wrote: [...]
Dein Windows Problem kenne ich zwar, kann dir aber keinen Rat geben. Das Problem liegt darin, daß Windows Programme als Zeilenende oder -umbruch
setzen, also Linefeed und Carriage Return, das kann aber ein Unixeditor nicht richtig übersetzen. cat datei | tr -d '\r' >datei.neu && mv datei.neu datei
Useless use of cat! Und das von dir...
Und ja: diesmal muss das cat vorneweg laufen, tr liest nur stdin ;-)
Wie kommst du auf diese duenne Brett?
tr -d '\r' < datei > datei.neu
Ja ja, hast ja Recht ;-). So gehts natürlich auch und ist billiger. Jan
Hallo, On Fri, 21 Mar 2003, Jan Trippler wrote:
On Fre, 21 Mär 2003 at 04:51 (+0100), David Haller wrote:
On Thu, 20 Mar 2003, Jan Trippler wrote: [..]
Und ja: diesmal muss das cat vorneweg laufen, tr liest nur stdin ;-)
Wie kommst du auf diese duenne Brett?
tr -d '\r' < datei > datei.neu
Ja ja, hast ja Recht ;-). So gehts natürlich auch und ist billiger.
Immer wieder interessant, wenn man mal 'strace'/'ltrace' anwirft *g* -dnh PS: kannst du mal deine Msg-Id reparieren? Und *huch* verwendest du einen alten mutt ;) -- Ceci n'est pas une .signature.
participants (4)
-
David Haller
-
Dieter Kluenter
-
Jan.Trippler@t-online.de
-
Patrice Staudt