Discussion:
Dateinamen in Array speichern
(zu alt für eine Antwort)
Kai Schlamp
2004-02-09 20:00:10 UTC
Permalink
Hallo!

Ich versuche Dateinamen bzw. Ordnernamen, welche sich in einem
bestimmten Ordner befinden via einem Shell-Skript auszulesen und dann in
ein Array zu speichern.
Da es aber im Vergleich zu mir bekannten Skriptsprachen keine Funktionen
gibt um Verzeichnisse direkt auszulesen (oder gibt es die doch?), habe
ich mir überlegt, zuerst mit ls das verzeichnis auslesen und dann
irgendwie mit grep den inhalt in variablen speichern. Das Problem ist
das "Irgendwie" ;-)
Kann mir jemand weiterhelfen, bzw. bin ich wenigstens auf dem richtigen Weg?

Gruß,
Kai
Stefan Lagotzki
2004-02-09 21:03:50 UTC
Permalink
Hallo Kai,

schau Dir die Moeglichkeiten von 'find' an. Wenn du Fragen
hast, poste bitte Name und Version Deines Betriebssystems,
die Version von 'find' und eventuell noch, mit welcher shell
Du arbeitest.
Du kannst an 'find' viele Suchoptionen uebergeben und die
Ergebnisse natuerlich in arrays oder Dateien umleiten. Wenn es
Dir um einfachere Auflistungen geht, dann schau nach den
Optionen von 'ls'.

Stefan

.
Thomas 'PointedEars' Lahn
2004-02-16 01:57:39 UTC
Permalink
Kai Schlamp wrote:
^^^^^^^
Harziges Beinkleid.
Post by Kai Schlamp
Ich versuche Dateinamen bzw. Ordnernamen, welche sich in einem
bestimmten Ordner befinden via einem Shell-Skript auszulesen und
dann in ein Array zu speichern.
Und wozu soll das gut sein?
Post by Kai Schlamp
Da es aber im Vergleich zu mir bekannten Skriptsprachen keine
Funktionen gibt um Verzeichnisse direkt auszulesen (oder gibt es die
doch?),
Unnötig, das liefert das Betriebssystem schon alles mit.
Post by Kai Schlamp
habe ich mir überlegt, zuerst mit ls das verzeichnis auslesen
Guter Ansatz.
Post by Kai Schlamp
und dann irgendwie mit grep
Muss das?
Post by Kai Schlamp
den inhalt in variablen speichern.
Guter Absatz. Nur das Zwischenstück fe lt.
Post by Kai Schlamp
Das Problem ist das "Irgendwie" ;-) Kann mir jemand weiterhelfen,
bzw. bin ich wenigstens auf dem richtigen Weg?
Ich frage mich gerade, was Dir an

ifs_bak=${IFS}
IFS="
"
a=()
for i in `ls -1`
do
a[${#a[@]}]=$i
done
IFS=${ifs_bak}

nicht gefällt ...


PointedEars
Heiner Steven
2004-02-26 22:02:27 UTC
Permalink
Post by Kai Schlamp
Ich versuche Dateinamen bzw. Ordnernamen, welche sich in einem
bestimmten Ordner befinden via einem Shell-Skript auszulesen und dann in
ein Array zu speichern.
Da es aber im Vergleich zu mir bekannten Skriptsprachen keine Funktionen
gibt um Verzeichnisse direkt auszulesen (oder gibt es die doch?), habe
ich mir überlegt, zuerst mit ls das verzeichnis auslesen und dann
irgendwie mit grep den inhalt in variablen speichern. Das Problem ist
das "Irgendwie" ;-)
Kann mir jemand weiterhelfen, bzw. bin ich wenigstens auf dem richtigen Weg?
for entry in *
do
# do something with file/directory
done

Heiner
--
___ _
/ __| |_ _____ _____ _ _ Heiner STEVEN <***@nexgo.de>
\__ \ _/ -_) V / -_) ' \ Shell Script Programmers: visit
|___/\__\___|\_/\___|_||_| http://www.shelldorado.com/
Hauke Laging
2004-02-26 22:38:27 UTC
Permalink
Post by Heiner Steven
Post by Kai Schlamp
Ich versuche Dateinamen bzw. Ordnernamen, welche sich in einem
bestimmten Ordner befinden via einem Shell-Skript auszulesen und
dann in ein Array zu speichern.
for entry in *
do
# do something with file/directory
done
Mit der nötigen Beachtung von Namen, die mit einem Punkt beginnen.


CU

Hauke
--
Die Ein-Mann-Unix-Entwicklungsabteilung: http://cr.yp.to/
**********
Helfen Sie Open Source! Petition gegen Softwarepatente
http://petition.eurolinux.org/index_html
Loading...