[GELÖST] wie schütze ich " (=Anführungszeichen) in rename?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
pachhenk
Beiträge: 120
Registriert: 19.06.2004 15:49:36
Lizenz eigener Beiträge: MIT Lizenz

[GELÖST] wie schütze ich " (=Anführungszeichen) in rename?

Beitrag von pachhenk » 13.12.2015 14:38:21

Hallo zusammen,

in meiner Musiksammlung hats einige Dateien die ein Anführungszeichen enthalten. Das führt offensichtlich beim kopieren zum Abbruch. Jetzt möchte ich mit rename die Anführungszeichen durch MIN ersetzen.

Mit

Code: Alles auswählen

$ rename 's/"/MIN/g' * 
komm ich aber nicht zum Ziel.
Ein

Code: Alles auswählen

$ rename 's/\"/MIN/g' * 
hilft auch nicht.

Wie schütze ich das " am einfachsten?
Zuletzt geändert von pachhenk am 13.12.2015 17:35:09, insgesamt 1-mal geändert.

Benutzeravatar
4A4B
Beiträge: 962
Registriert: 09.11.2011 11:19:55
Kontaktdaten:

Re: wie schütze ich " (=Anführungszeichen) in rename?

Beitrag von 4A4B » 13.12.2015 15:19:34

Bei mir funktioniert die zweite Variante:

Code: Alles auswählen

$ touch 'bla"bla'
$ ls
bla"bla
$ rename 's/\"/MIN/g' *
$ ls
blaMINbla
Edit:

Die erste Variante funkioniert bei mir auch!

Folgende Version von rename verwende ich unter Debian stretch:

Code: Alles auswählen

$ rename --version
/usr/bin/rename using File::Rename version 0.20

Benutzeravatar
pachhenk
Beiträge: 120
Registriert: 19.06.2004 15:49:36
Lizenz eigener Beiträge: MIT Lizenz

Re: wie schütze ich " (=Anführungszeichen) in rename?

Beitrag von pachhenk » 13.12.2015 17:26:45

Sorry, bei funktionierts auch. Ich hatte nicht realisiert, dass der Befehl nicht rekursiv angewendet wird (die Musikdateien sind ja in Unterordnern). Jetzt versuche ich grad das ganze mit find zu kombinieren.

Code: Alles auswählen

user@rechner:~/Musik$ find -type f -exec rename 's/"/MIN/g'  '{}' \; 
ergibt

Code: Alles auswählen

find: Fehlendes Argument für "-exec".
Aber ich bleib dran...
Und berichte dann...


EDIT:
so hats jetz funktioniert ({} statt '{}'):

Code: Alles auswählen

user@rechner:~/Musik$ find -type f -exec rename 's/"/MIN/g'  {} \; 
Problem gelöst.

Danke!

Antworten