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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 56425
Url: https://administrator.de/contentid/56425
Ausgedruckt am: 22.11.2024 um 08:11 Uhr
1 Kommentar
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
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