Ich möchte in der Lage sein, eine Liste von Dateien, die einem bestimmten Muster entsprechen. Ich kann Unix bekommen, um diese Dateien mit ls und egrep mit einem regulären Ausdruck aufzulisten, aber ich finde keine Möglichkeit, dies in einen iterativen Prozess umzuwandeln. Ich vermute, dass die Verwendung von LS nicht die Antwort ist. Jede Hilfe würde dankbar erhalten werden.wie Dateien durchlaufen, die einen regulären Ausdruck in einem UNIX-Shell-Skript entsprechen
Mein aktueller ls Befehl sieht wie folgt aus:
ls | egrep -i 'MYFILE[0-9][0-9]([0][1-9]|1[0-2])([0][1-9]|[12][0-9]|[3][01]).dat'
Ich würde die oben erwarten zum Spiel:
- MYFILE160418.dat
- myFILE170312.DAT
- MyFiLe160416.DaT
aber nicht:
- MYOTHERFILE150202.DAT
- myfile.dat
- myfile.csv
Danke,
Paul.
Hallo @ paul-frith , sollten Sie mit einem 'while' oder einem' for' beginnen. Verwenden Sie einen Zähler wie im Beispiel -> http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-7.html –
In vielen Fällen benötigen Sie keine explizite Schleife, da Sie die Argumente übergeben können ein anderes Programm via Pipe, eventuell mit 'xargs'. –
Brilliant danke - Ich hatte nicht realisiert, dass Sie ls in einer for-Schleife verwenden können. –