worm
Goto Top

Syntax for-Befehl (unter Unix)

Hallo zusammen

Ich muss ein Shell-Script (SH auf Tru64) erstellen, worin ich aus einer Text-Datei Daten auslese.

Für jede Zeile soll ein bestimmter Block ausgeführt werden, was man ja sehr gut mit for machen kann.

Allerdings habe ich bis jetzt immer nur Dateien verwendet, wo die Werte mit einem Leerschlag voneinander getrennt waren...

Das Input-File hat aber jetzt ein Komma als Delimiter...

Weiss jemand, mit welchem Parameter man den Delimiter angeben kann?

Besten Dank schon mal im Voraus für die Unterstützung!

Gruss Rolf

Content-Key: 29027

Url: https://administrator.de/contentid/29027

Printed on: April 26, 2024 at 04:04 o'clock

Member: miniversum
miniversum Mar 27, 2006 at 10:41:24 (UTC)
Goto Top
Das geht mit "delims=,"

also z.B.:
FOR /F "eol=; tokens=2,3* delims=, " %i in (Datei.txt) do @echo %i %j %k

miniversum
Member: WORM
WORM Mar 27, 2006 at 11:10:01 (UTC)
Goto Top
Hallo miniversum

Vielen Dank für den Hinweis...

Aber leider handelt es sich bei Deinem Beispiel um die Syntax auf DOS/Windows in einer Batch-Datei, welche auf UNIX leider nicht funktioniert face-sad

Ich bin also auf der Suche nach dem Equivalent für UNIX.

Gruss Rolf
Member: stpe
stpe Mar 27, 2006 at 19:12:35 (UTC)
Goto Top
Um Strings mit einem Delimiter zu unterteilen, benutze ich awk mit dem Parameter "-F". Als kleines Beispiel:

echo eins.zwei.drei |awk -F. ' {print $2}'  

gibt "zwei" aus.

Gruss
Stefan
Member: WORM
WORM Mar 28, 2006 at 07:09:38 (UTC)
Goto Top
Hallo Stefan

Vielen Dank, so funktioniert's...

Gruss Rolf