bash-Skript, erstellen Sie ein array, der alle Dateien in einem Verzeichnis
Habe ich ein Verzeichnis myDir
von vielen .html-Dateien. Ich versuche, ein array zu erstellen, alle Dateien in dem Verzeichnis, so könnte ich den index des array und in der Lage sein zu finden, insbesondere html-Dateien in das Verzeichnis. Ich habe versucht die folgende Zeile:
myFileNames=$(ls ~/myDir)
for file in $myFileNames;
#do something
aber ich möchte in der Lage sein, um eine counter-variable und-Logik wie der folgende:
while $counter>=0;
#do something to myFileNames[counter]
Ich bin ganz neu mit shell scripting und bin nicht in der Lage, um herauszufinden, wie dies zu erreichen, daher wäre für jede Hilfe dankbar, bezüglich dieser Angelegenheit.
Mögliche Duplikate von Lesen Sie Dateinamen in ein array
InformationsquelleAutor anonuser0428 | 2014-02-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie tun:
Können Sie dies auch tun, für die iteration des Arrays:
Eigentlich
shopt -s nullglob
verwendet werden können, bevor der array-Erstellung zu vermeiden, dass eine falsche Ergebnis.Vielleicht können Sie erzählen, wie Sie zum filtern von Dateien mit bestimmten Endung?
Zu match-Dateien mit
txt
Erweiterung verwendenarr=(~/myDir/*.txt)
obenDann ist es besser zu tun
cd myDir
und dannarr=(*.txt)
InformationsquelleAutor anubhava
Ihre Lösung für die Erzeugung des array. Anstelle der Verwendung einer while-Schleife, eine for-Schleife verwenden:
Verwenden IFS zu legen das Trennzeichen in diesem Fall. So lange wie IFS nicht den Raum, sollten dann Sie gut sein.
OP hat nicht erwähnt, dies als Teil der Kriterien 🙂
InformationsquelleAutor Paul Hicks