macadmin
Goto Top

Dateinamen suchen und umbenennen

suchen nach Zahlen in einen Dateinamen

Guten Morgen,

ich habe ca. 1000 Dateien dich ich per Script automatisch umbennen möchte.

Die momentane Datei Struktur stellt sich so da:

Datei.1.ps
Datei.2.ps
...
Datei.10.ps
Datei.11.ps
..
Datei.101.ps
Datei.102.ps
..
Datei.1021.ps
..

Das Script soll alle Dateien die weniger als vier Ziffern haben umbennen.
Nach der Script Prozedur sollte die Datei Struktur sich so darstellen:

Datei.0001.ps
Datei.0002.ps
..
Datei.0010.ps
Datei.0011.ps
..
Datei.0101.ps
Datei.0102.ps
Datei.1021.ps

Das ganze sollte doch mit find / grep / mv funktionieren ?
Ich hoffe mir kann jemand helfen.

Vielen Dank im Voraus

Michael

Content-ID: 56425

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

Ausgedruckt am: 22.11.2024 um 08:11 Uhr

ComFreakTom
ComFreakTom 16.04.2007 um 21:35:18 Uhr
Goto Top
am einfachsten geht es denke ich mit einem php-script

schau dir mal die funktionen hier dazu an

array split ( string $Suchmuster, string $Zeichenkette [, int $Beschränkung] ) >> $dateiliste[i] = split(".",$dateiliste[i]) << günstiger weiße wäre die liste ohne Pfad

string sprintf ( string $format [, mixed $args] ) >> $dateiliste[i][1]=sprint("%4d",$dateiliste[i][1]); << ob %4d angenommen wird, weiß ich grad nicht aber in die richtung funktioniert es

rename("/tmp/tmp_file.txt", "/home/user/login/docs/my_file.txt"); >> rename($dateiliste_org[i],implode(".",$dateiliste[i])) << hier sollten die Pfade wieder dabei sein


zur dateilisten erzeugung kannst das ganze ja mit find in eine datei schreiben...
find / | grep "Datei\..*.\.ps" > dateiliste.txt
diese kannst dann mit PHP in ein Array einlesen... (hier lohnt sich der PHP befehl "file — Liest eine Datei komplett in ein Array")

Die Liste sollte aber überprüft werden, nicht das durch die Wildcards noch andere mit reingeraten sind.

Hab nur im moment nicht die lust und muse es selbst zu schreiben, das script face-big-smile