Login
Newsletter

Thema: Umbenennen von Dateien

12 Kommentar(e) || Alle anzeigen ||  RSS
Kommentare von Lesern spiegeln nicht unbedingt die Meinung der Redaktion wider.
0
Von Andy am Mi, 15. November 2000 um 17:17 #
Für diese Art von Aufgabe finde ich das Kommando mmv immer noch am einfachsten...

man mmv :-)

[
| Versenden | Drucken ]
  • 0
    Von hjb am Mi, 15. November 2000 um 20:48 #
    Das ist richtig, aber die Syntax von mmv ist auch nicht einfach zu behalten :-)

    Außerdem ist die for-Schleife flexibler, einfach mv durch ein anderes Kommando ersetzen...

    [
    | Versenden | Drucken ]
    0
    Von Peter Gerlach am Do, 16. November 2000 um 11:17 #
    was soll das denn für ein
    Befehl sein?
    Den gibt es im Linux-Anwenderhandbuch nicht,
    der Kofler kennt das nicht und mein man Hilfesystem
    kennt das auch nicht.
    Wird hier noch über Linux geredet? Oder ist das ein
    Kommando, das Du Dir selbst
    programmiert hast? Dann kann
    ich es nämlich lange suchen.
    :-
    [
    | Versenden | Drucken ]
0
Von Jochen am Do, 16. November 2000 um 15:08 #
Jo, Schleifen an der Shell programmieren sollte jeder Admin schon können. Allerdings sollte er sich auch seiner menschlichen Fehlbarkeit bewusst sein und bei solchen Aktionen die "gefährlichen" Kommandos (hier mv ...) in ein echo einschliessen (echo "mv ..."). Dann erhält man alle Kommandos ausgegeben, wie sie die Shell absetzen würde. Ggf. reichen ja die ersten paar Zeilen, um zu sehen, dass man irgendwo ein Blank zuviel hat...
[
| Versenden | Drucken ]
0
Von Peter Bossy am Do, 16. November 2000 um 16:20 #
Und was machst Du, wenn Du Leezeichen im Dateinamen hast? Auf dieses Problem wird bei den meisten dieser "Rezepturen" nicht eingegangen. Und dann gehen diese Aktionen in die Hose.
Also muß man vorher den IFS (InputFieldSeparator?) manipulieren.
Der IFS beinhaltet nämlich standardmäßig newline,space,tab. Und die spaces zerreißen dann den Dateinamen.

Vor der Schleife:
OLD_IFS=$IFS
IFS='
'
(Das ist kein Schreibfehler. Ich hoffe nur, daß die Quotes ankommen)

Nach der Schleife:
IFS=$OLD_IFS

Gruß

Peter

[
| Versenden | Drucken ]
  • 0
    Von hjb am Di, 21. November 2000 um 08:13 #
    IFS interessiert mich überhaupt nicht ;-) Die Shell kann ziemlich perfekt mit Leerzeichen umgehen:

    cat "file with blanks"
    cat file\ with\ blanks

    [
    | Versenden | Drucken ]
    0
    Von Dorphion am Mi, 7. März 2007 um 11:50 #
    Mit dieser Methode gehts wirklich gut.

    Danke

    was mir passiert ist: hab vergessen, den IFS wieder zurückzusetzen, und hab mich dann gewundert, dass ls nicht ging

    Dorphion

    [
    | Versenden | Drucken ]
0
Von Peter Bossy am Mi, 22. November 2000 um 17:13 #
>IFS interessiert mich überhaupt nicht Die Shell kann ziemlich perfekt mit Leerzeichen umgehen:
>
> cat "file with blanks"
> cat file\ with\ blanks

Dann führ mal Deine Schleife in einem Unterverzeichnis aus in dem sich Files mit Blanks im Namen befinden. Habe ich selbst schon ausprobiert.
Das die Shell die Dateinamen anzeigen kann, weiß ich auch.
Aber in einer Schleife wird jeder durch Leerzeichen getrennte Namensteil zum Zählelement.


Gruß

Peter

[
| Versenden | Drucken ]
  • 0
    Von hjb am Di, 28. November 2000 um 21:24 #
    Wenn die Shell so bescheuert wäre, könnte man sie wegwerfen. Ist sie aber nicht, wie ich gerade nochmal verifiziert habe. Mein Tip funktioniert unter allen Umständen. Man muß allerdings das $i in Anführungszeichen setzen, also "$i", soweit muß ich dir recht geben.
    [
    | Versenden | Drucken ]
    • 0
      Von JT am Fr, 7. Juli 2006 um 17:26 #
      Ja die Shell kann mit Blanks umgehen. Eine For-Schleife über mit find gefundene Liste von Dateinamen mit Blanks , die ich in einer For-Schleife nachbearbeiten wollte, habe ich nur mit dem Tip des IFS hinbekommen.
      Die Find-Verarbeitung mit find -print0 | xargs -0 ist eine andere Alternative aber damit ist $(basename "$i") nicht so einfach möglich.

      Die Alternative wäre das Ergebnis in temporäres File zu schreiben und dann mit READ zeilenweise zu verarbeiten.

      Das mit dem IFS finde ich in diesem Fall eleganter.

      [
      | Versenden | Drucken ]
0
Von Jochen am Mi, 15. Juni 2005 um 13:32 #
Warum nicht mit rename, z.B.

touch a-001.jpg a-002.jpg a-003.jpg
rename a- Sept-2004-Mallorca- a-*.jpg

und ls ergibt:

Sept-2004-Mallorca-001.jpg Sept-2004-Mallorca-002.jpg Sept-2004-Mallorca-003.jpg

[
| Versenden | Drucken ]
  • 0
    Von tschul am Di, 20. Februar 2007 um 14:17 #
    we macht man das, wenn verschiedene Dateianfaenge auftauchen?
    [
    | Versenden | Drucken ]
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten