Dateien umbenenen via Shellskript
Dateien umbenenen via Shellskript
Hi @ all
ich versuche nun schon seit einiger Zeit alle in einem Ordner befindlichen Files mit der Endung .txt zu versehen.
Das Problem dabei ist, das sich in dem Ordner zusätzlich zu den Files ohne Endung auch noch Files mit diversen anderen Endungen befinden ( z.b. .pdf .jpg .TXT . sh....... ). Diese Files sollen natürlich ihre alte Endung behalten.
---> Zum händischen ändern sind es zu viele Files
Kann ich das evtl. mit mv und regulären Ausdrücken erledigen
Greetz nast
ich versuche nun schon seit einiger Zeit alle in einem Ordner befindlichen Files mit der Endung .txt zu versehen.
Das Problem dabei ist, das sich in dem Ordner zusätzlich zu den Files ohne Endung auch noch Files mit diversen anderen Endungen befinden ( z.b. .pdf .jpg .TXT . sh....... ). Diese Files sollen natürlich ihre alte Endung behalten.
---> Zum händischen ändern sind es zu viele Files
Kann ich das evtl. mit mv und regulären Ausdrücken erledigen
Greetz nast
greetz
nast
Debian User
nast
Debian User
Ungetestet!
Obiges geht nur, wenn die zu ändernden Dateien keinen Punkt im Namen haben!
Code: Alles auswählen
$ for file in *; do
> echo $file | grep -q "\." || mv "$file" "$file.txt"
> done
Alternativ: (Das Programm rename wird von Perl bereitgestellt)
Erklärung: rename erwartet (mind.) 2 Parameter, zuerst einen Perl-Substitution-Ausdruck, dann eine Liste der Dateien, die es evtl. umbenennen soll.
Die Syntax des Suchausdrucks ist:
s/RE-Ausdruck/Ersetzungsausdruck/
/ ist ein Trennzeichen, man kann auch ein beliebiges anderes wählen, z.B.
s!RE-Ausdruck!Ersetzungsausdruck!
Der Ausdruck ^([^.]*)$ bedeutet:
Code: Alles auswählen
rename "s/^([^.]*)$/\1.txt" *
Erklärung: rename erwartet (mind.) 2 Parameter, zuerst einen Perl-Substitution-Ausdruck, dann eine Liste der Dateien, die es evtl. umbenennen soll.
Die Syntax des Suchausdrucks ist:
s/RE-Ausdruck/Ersetzungsausdruck/
/ ist ein Trennzeichen, man kann auch ein beliebiges anderes wählen, z.B.
s!RE-Ausdruck!Ersetzungsausdruck!
Der Ausdruck ^([^.]*)$ bedeutet:
- ^ steht für den Beginn der Zeile, dies ist notwendig, damit der Ausdruck nicht auf einen Teil des Namens angewendet wird
- () erzeugt eine Gruppe; im Ersetzungsausdruck steht dann \1 für den Teil des Textes, auf den die Gruppe gepasst hat (in unserem Fall der gesamte Dateiname)
- [^.] heisst: jedes Zeichen, außer einem Punkt ( [abcd] würde für ein a oder b oder c oder d stehen, [^abcd] kehrt die Bedeutung um, alles außer abcd)
- Der stern dahinter heißt, dass [^.] beliebig oft hintereinander (auch gar kein mal) vorkommen darf; + würde mindestens einmal heißen
- $ steht für das Zeilenende, mit dem ^$ haben wir erreicht, dass der Ausdruck auf das gesamte Wort passen muss
Hi Leute,
noch leichter geht's meiner Meinung nach mit "mmv" multiple move!
noch leichter geht's meiner Meinung nach mit "mmv" multiple move!
Roland
"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"
"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"
Hi,
auch wenn ich's nicht mag, aber ich muss dir hier und heute mit einem RTFM antworten. Ich sitze an einer Windoofs Kiste, und habe keine Möglichkeit nachzuschauen. Da ich mmv nicht so oft benutze, muss ich auch jedes mal in's Manual schauen. Wenn's nicht klappt, am Wochenende kann ich mal versuchen dir ein Beispiel zu geben, ob die Zeit dazu reicht weiss ich allerdings noch nicht.
auch wenn ich's nicht mag, aber ich muss dir hier und heute mit einem RTFM antworten. Ich sitze an einer Windoofs Kiste, und habe keine Möglichkeit nachzuschauen. Da ich mmv nicht so oft benutze, muss ich auch jedes mal in's Manual schauen. Wenn's nicht klappt, am Wochenende kann ich mal versuchen dir ein Beispiel zu geben, ob die Zeit dazu reicht weiss ich allerdings noch nicht.
Roland
"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"
"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"
wollte mmv einmal ausprobieren:
Code: Alles auswählen
mmv "[^.]" "#1.txt"