ubuntuusers.de

Mehrere Dateiendungen umbenennen mit mv

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

C-Y-R-U-S

Avatar von C-Y-R-U-S

Anmeldungsdatum:
14. Mai 2005

Beiträge: 888

Ich muss aus (In)Kompatibilitätsgründen alle meine mit sound-juicer erstellten *.oga files in *.ogg "umwandeln", da mein Ogg-Player diese seit September 2008 existierende Benennung von ogg audio nicht kennt und gar nicht erst versucht sie abzuspielen.

mv *.oga *.ogg

funktioniert nicht, zumindest nicht mit dem Platzhalter. Die manpage sagt auch nichts dazu

rename

hat auch nicht geklappt.

Weiß jemand Rat, wie das ohne Skript klappt?

Grüße Christoph

The-Compiler Team-Icon

Avatar von The-Compiler

Anmeldungsdatum:
21. April 2006

Beiträge: 2640

Wohnort: Winterthur, Schweiz

Das wird so nicht klappen, aber wieso denn ohne Skript? So gehts am einfachsten:

1
2
3
for n in *.oga; do
  mv $n $(basename "$n" .oga).ogg
done

Zur Erklärung: Die Shell expandiert *.ogg einfach zu allen .ogg Dateien und .oga einfach zu allen .oga-Dateien (also keine), ausgeführt werden würde also:

mv foo.oga bar.oga blah.oga nanana.oga

Die Zeile

for n in *.oga; do

führt alles bis zu done für alle *.oga-Dateien aus, wobei die ensprechende Datei in $n enthalten ist. basename schneidet einfach das .oga weg, da es in $() enthalten ist, wird danach die Ausgabe einfach durch das ersetzt. Das ist die Zeile im Skript:

mv $n $(basename "$n" .oga).ogg sie wird geändert zu:

mv foo.oga foo.ogg

Der grüne Teil wird wie folgt geändert:

$(basename "$n" .oga).ogg

$(basename "foo" .oga).ogg

foo.ogg

Flo

TomTobin

Avatar von TomTobin

Anmeldungsdatum:
24. August 2007

Beiträge: 3101

Es gibt auch ganz praktische GUIs zum Umbenennen vieler Dateien:

sudo apt-get -y install gprename	# Programm zum Dateien umbenennen
sudo apt-get -y install pyrenamer	# Programm zum Dateien umbenennen

Gruß

Tom

C-Y-R-U-S

(Themenstarter)
Avatar von C-Y-R-U-S

Anmeldungsdatum:
14. Mai 2005

Beiträge: 888

Ok, warum mein Versuch nicht geht hab ich verstanden, aber dein Skript gibt leider die selbe Fehlermeldung aus:

mv: angegebenes Ziel „43.ogg“ ist kein Verzeichnis

sprich: so weit war ich auch schon.

Zur Frage "warum kein Skript": Weil mit einem Skript alles geht, dass kann dann ja jeder 😉

Nei, Skripte sind auch ok, aber eben etwas aufwendiger.

Gruß Christoph

Edit: Mit ner Gui kanns erst recht jeder. Wollte ich eigentlich nicht.

C-Y-R-U-S

(Themenstarter)
Avatar von C-Y-R-U-S

Anmeldungsdatum:
14. Mai 2005

Beiträge: 888

Ok, habs selbst hinbekommen:

for n in *.oga; do
  mv "$n" "${n%.*}.ogg"
done

bzw wie du es meintest, aber da haben wohl die "" gefehlt:

for n in *.oga; do
  mv "$n" "$(basename "$n" .oga).ogg"
done

The-Compiler Team-Icon

Avatar von The-Compiler

Anmeldungsdatum:
21. April 2006

Beiträge: 2640

Wohnort: Winterthur, Schweiz

Okay, wenn die .oga-Dateien Leerzeichen beinhalten schlug mein Skript fehl ☺ Magst du mir erklären was

 ${n%.*} 

genau macht?

Flo

C-Y-R-U-S

(Themenstarter)
Avatar von C-Y-R-U-S

Anmeldungsdatum:
14. Mai 2005

Beiträge: 888

Mögen ja, können nein, ich hab mir das aus nem anderen Skript abgeschaut.

Zum konvertieren von Videos für den Meizu M6. Wenn es dich interessiert:

for INFILE in *.*;
 do mencoder "$INFILE" 
   -idx -noodml -ofps 20 -vf scale=320:-2,expand=:240:::1,crop=320:240, -ovc lavc -ffourcc XVID -lavcopts      
   vcodec=mpeg4:vbitrate=384:vmax_b_frames=0:vhq -sws 9 -srate 44100 -oac mp3lame -lameopts cbr:br=128:mode=0 
   -o "${INFILE%.*}.avi"; 
done

Das mit den Leerzeichen hab ich nicht gewusst, hab ich mir halt so gedacht, weils in dem Skript eben auch so ist und es hat geklappt. Wieder was dazugelernt, danke. ☺

Stefan_Schmitz

Avatar von Stefan_Schmitz

Anmeldungsdatum:
7. November 2007

Beiträge: 433

Wohnort: France

natürlich geht's ganz ausgezeichnet mit rename

stefan@outpost:~/Progs$ rename -n 'y/.py/.pz/' *
fibonacci.py renamed as fibonacci.pz
intguess.py renamed as intguess.pz
marge.py renamed as marge.pz
Python26man renamed as Pzthon26man
var.py renamed as var.pz
stefan@outpost:~/Progs$

was habe ich da getan? ich habe rename aufgerufen, option -n (no-action: nur simulieren, nicht machen), Anführungszeichen, y, slash (ersetze) # ich könnte auch s nehmen (strip/entferne), wäre aber hier nicht angebracht .py/.pz/ eben! * für Alle Dateien.

WICHTIG! bitte schau dir an, dass auch das Verzeichnis Python26man, in welchem ich bereits die Dokumentation für Python 2.6.x gespeichert habe, umbenannt wurde. Was du nicht siehst: Das Verzeichnis OOoMan (Open Office Manuals) bleibt unangetastet (weil nirgendwo der Teilstring py enthalten ist). Die Formulierung .py (mit Punkt) scheint nichts zu bringen; der Punkt wird hier ignoriert...

NICHT GUT

Also versuche ich:

stefan@outpost:~/Progs$ rename -n 'y/py/pz/' *.py
fibonacci.py renamed as fibonacci.pz
intguess.py renamed as intguess.pz
marge.py renamed as marge.pz
var.py renamed as var.pz
stefan@outpost:~/Progs$

DAS ist Es!

ich ersetze py durch pz, aber NUR in Files, die auf .py enden. Für dich müsste also der Code lauten:

stefan@outpost:~/Music$ rename -n 'y/oga/ogg/' *.oga

und wenn es so aussieht, als würde es genau so laufen, wie du dir das vorstellst, dann löscht du die -n Option weg und machst es endgültig.

Heavy Christmas and a Headbanging Year!

e1bart0 Team-Icon

Avatar von e1bart0

Anmeldungsdatum:
12. Mai 2007

Beiträge: 927

Wohnort: München

Stefan Schmitz: Du hast im ersten Kommando den Punkt nicht maskiert, so sollte es also gehen:

rename -n 'y/\.py$/\.pz/' * 

Ohne Maskierung steht der Punkt für ein beliebiges Zeichen. Ich habe außerdem das Dollarzeichen angefügt, das stellt sicher, dass .py nur am Ende des Dateinamens vorkommt.

Holger63

Avatar von Holger63

Anmeldungsdatum:
8. Juni 2006

Beiträge: 695

Wohnort: Wesel, Nordrhein-Westfalen

C|Y|R|U|S schrieb:

Ich muss aus (In)Kompatibilitätsgründen alle meine mit sound-juicer erstellten *.oga files in *.ogg "umwandeln"

Du kannst im Sound-Juicer die Dateiendung von ".oga" auf ".ogg" umstellen. Wähle dazu in den Einstellungen den Punkt "Profile bearbeiten".
Somit brauchst du zukünftig die Dateinamen nicht mehr anzupassen.

Gruß, Holger

C-Y-R-U-S

(Themenstarter)
Avatar von C-Y-R-U-S

Anmeldungsdatum:
14. Mai 2005

Beiträge: 888

Holger63 schrieb:

C|Y|R|U|S schrieb:

Ich muss aus (In)Kompatibilitätsgründen alle meine mit sound-juicer erstellten *.oga files in *.ogg "umwandeln"

Du kannst im Sound-Juicer die Dateiendung von ".oga" auf ".ogg" umstellen. Wähle dazu in den Einstellungen den Punkt "Profile bearbeiten".
Somit brauchst du zukünftig die Dateinamen nicht mehr anzupassen.

Gruß, Holger

Genau das hab ich mittlerweile auch getan ☺

C-Y-R-U-S

(Themenstarter)
Avatar von C-Y-R-U-S

Anmeldungsdatum:
14. Mai 2005

Beiträge: 888

Wie es aussieht, hat es mein "Problem" in Form eines Rätsels in die aktuelle Ausgabe der YALM geschafft:

http://www.yalmagazine.org/homepage/blog/yalm_01/2009_erschienen

steinzeit

Anmeldungsdatum:
11. März 2009

Beiträge: 9

Okay,mein Problem ist nun, das meine ganzen .ogas über diverse ordner und unterordner in /Musique verteilt sind. Die von Stefan beschriebene Möglichkeit klappt bei mir Ordner für Ordner. Gibts da noch nen schnelleren Weg?

Antworten |