PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : shell Script



emka81
29.11.09, 00:35
Hallo ihr Linux Gurus,

habe da mal eine Frage bezüglich shell scripts. Ich will aus einer txt datei Namen einlesen und dann Homedirectories mit diesen Namen erstellen lassen.



#!/bin/bash
# Namen in ein Array einlesen und danach in datei schreiben

vname=(`cat namen.txt | awk '{print $1}'`)
nname=(`cat namen.txt | awk '{print $2}'`)

for (( i = 0; i < ${#vname }; i++ ))
do
echo ${vname[i]}
mkdir ./test/${nname[i]}
done
exit



würde ich nur den Vornamne (vname) nehmen ist es kein Problem, aber beim Nachnamen wir ein ? eingefügt und bei Versuch in das Verzeichnis zu wechseln ist es ein ^M

Die namen.txt ist einfach nur so aufgebaut

vorname nachname
vorname nachname
vorname nachname

Kann es sein, dass dieses ^M einen Zeilenwechsel signalisiert ??

Grüße Martin

drcux
29.11.09, 00:54
Kann es sein, dass dieses ^M einen Zeilenwechsel signalisiert ??


Ja, kommt von einem Windows-Editor, lass ein dos2unix über die Datei laufen.

drcux
29.11.09, 00:57
vname=(`cat namen.txt | awk '{print $1}'`)

hüstel:

awk '{print $1}' namen.txt

emka81
29.11.09, 01:21
Danke,

zweiteres funktioniert auch nicht ob vorher awk oder in der Pipe bleibt anscheinend egal. Welches Paket liefert einen dos2unix Konverter ?

wenn ich die Datei unter Linux im nano erstelle und die Namen reinkopiere wird es wahrscheinlich der gleiche Effekt sein oder ?

Grüße Martin

emka81
29.11.09, 01:29
hat mir sehr geholfen, die Frage vorher hat mir google beantwortet .)

dos2unix steckt bei einem debian System in folgendem Paket



aptitude install tofrodos


danach einfach dos2unix <dietextdatei> und dahin gehts !

Danke und gute nacht !

drcux
29.11.09, 10:06
zweiteres funktioniert auch nicht ob vorher awk oder in der Pipe bleibt anscheinend egal.

Es geht auch nicht darum, das es funktioniert:

http://linuxwiki.de/UselessUseOfCat

emka81
29.11.09, 22:37
Danke für den Hinweis, man lernt NIE aus :)