Home / Community / Fragen / Shell-Skript zur Ersetzung von Anführungszeichen in Dateinamen

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.

Shell-Skript zur Ersetzung von Anführungszeichen in Dateinamen

4 Antworten

Nachricht Autor

Montag, 26. September 2011 20:21:52

Guten Abend,

ich versuche mich gerade aus gegebenem Anlass an einem Shellskript, dass ein oder mehrere einfache Anführungszeichen aus einem Dateinamen durch ein Leerzeichen ersetzen soll (Mein User kommen auf so seltsame Dateinamen!)

Mein aktueller Versuch sieht wie folgt aus:

#! /bin/bash

newname=`echo $1 | sed "s/\'/ /g"`
echo $newname
## Ende

Rufe ich das Skript mit

rename.sh test'test

auf, gibt mir echo den ursprünglichen Namen aus. Auch ein

newname=`echo "$1" | sed "s/\'/ /g"`

ändert nichts am Ergebnis.
Kann mich vielleicht jemand vom Holzweg führen?

Danke & Gruß,

HP

Hans-Peter Schneider


Antworten
Shell-Skript zur Ersetzung von Anführungszeichen in Dateinamen
Markus Berlin, Dienstag, 27. September 2011 08:34:22
Ein/Ausklappen

versuch mal:

newname=`echo "$1" | sed "s/'/ /g"`

Aber warum sind Leerzeichen in Dateinamen besser als Anführungszeichen?




Bewertung: 170 Punkte bei 4 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
-
Re: Shell-Skript zur Ersetzung von Anführungszeichen in Dateinamen
Hans-Peter Schneider, Dienstag, 27. September 2011 08:58:32
Ein/Ausklappen

DANKE!

Doch so trivial? Für mich stand ohne Zweifel fest, dass ein einfaches Anführungszeichen ein Sonderzeichen ist, welches nicht ohne vorangestellten Backslash auskommt.

Ich muss die Anführungszeichen beseitigen, da ich die Dateinamen im Anschluss noch mehrfach in einem PHP-Skript verwende und ich dort schon ausgiebig Gebrauch von einfachen und doppelten Anführungszeichen mache. Das zusätzliche Anführungszeichen im Dateinamen führt nur zu einem Chaos.

Gruß,

HP


Bewertung: 95 Punkte bei 3 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
-
Re: Shell-Skript zur Ersetzung von Anführungszeichen in Dateinamen
Ugglan (unangemeldet), Montag, 10. Oktober 2011 16:24:27
Ein/Ausklappen

Moin,

Du solltest in Deinem Skript noch die Varianten des Apostroph berücksichtigen:

´ ` (Akzent ohne Buchstaben)
‚ ‘ (Auto-Ersetzung von Word)

Ich bin bei einer ähnlichen Aufgabe (automatisches Taggen und Umbenennen von mp3) halb wahnsinnig geworden, weil die Leute in der CD-Datenbank alle (un)möglichen Varianten verwendet haben und ich glaubte, mein Skript sei defekt :-/

Deine User werden sicher erfinderisch, wenn sie merken, dass Anführungszeichen nicht "funktionieren"...

Als Minimum solltest Du

sed "s/['´`]/ /g"

nehmen. Gleiches gilt für die doppelten Anführungszeichen. (Wie die Office-Varianten auf Deinem System aussehen, solltest Du selbst eruieren und mit einem Hex-Editor prüfen, was davon bei Copy&Paste ankommt.)

Viel Erfolg,

Ugglan


Bewertung: 46 Punkte bei 3 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
Re: Shell-Skript zur Ersetzung von Anführungszeichen in Dateinamen
Wimpy *, Mittwoch, 28. September 2011 09:57:23
Ein/Ausklappen

Hallo,
ich glaube, daß Leerzeichen im Dateinamen gar nicht gut sind.
Ich verwende statt dessen den Unterstrich_, das sieht optisch aus wie ein Leerzeichen, ist aber keins.


Bewertung: 121 Punkte bei 4 Stimmen.
Den Beitrag bewerten: Gut / Schlecht

Tipp der Woche

Bilder vergleichen mit diffimg
Bilder vergleichen mit diffimg
Tim Schürmann, 01.04.2014 12:40, 1 Kommentare

Das kleine Werkzeug diffimg kann zwei (scheinbar) identische Bilder miteinander vergleichen und die Unterschiede optisch hervorheben. Damit lassen sich nicht nur Rätsel a la „Orignial und Fäls...

2374 Hits
Wertung: 142 Punkte (6 Stimmen)

Aktuelle Fragen

programm suche
Hans-Joachim Köpke, 13.04.2014 10:43, 8 Antworten
suche noch programme die zu windows gibt, die auch unter linux laufen bzw sich ähneln sozusagen a...
Funknetz (Web-Stick)
Hans-Joachim Köpke, 04.04.2014 07:31, 2 Antworten
Bei Windows7 brauche ich den Stick nur ins USB-Fach schieben dann erkennt Windows7 Automatisch, a...
Ubuntu 13.10 überschreibt immer Windows 8 Bootmanager
Thomas Weiss, 15.03.2014 19:20, 8 Antworten
Hallo Leute, ich hoffe das ich richtig bin. Ich habe einen Dell Insipron 660 Ich möchte gerne Ub...
USB-PTP-Class Kamera wird nicht erkannt (Windows-only)
Wimpy *, 14.03.2014 13:04, 15 Antworten
ich habe meiner Frau eine Digitalkamera, AGFA Optima 103, gekauft und wir sind sehr zufrieden dam...
Treiber
Michael Kristahn, 12.03.2014 08:28, 5 Antworten
Habe mir ein Scanner gebraucht gekauft von Canon CanoScan LiDE 70 kein Treiber wie bekomme ich de...

Jetzt auf den Mailinglisten

Re: [EasyLinux-Ubuntu] Nach_Update/Umstellung_auf_Lubuntu_14.04_LTS:_Ersatz_für_"Jupiter"_zur_Hardwaresteuerung?
Uwe Herrmuth, 23.04.2014 08:07
Hallo Maik, Maik Lehmberg schrieb am 23.04.2014 um 07:05: > Vielleicht sollte ich zu ubuntu 12.04 LTS zu...
Re: [EasyLinux-Ubuntu] Nach_Update/Umstellung_auf_Lubuntu_14.04_LTS:_Ersatz_für_"Jupiter"_zur_Hardwaresteuerung?
Uwe Herrmuth, 23.04.2014 08:05
Hallo Maik, Maik Lehmberg schrieb am 22.04.2014 um 19:31: > danke Dir für die schnelle Antwort und die...
Re: [EasyLinux-Ubuntu] Nach_Update/Umstellung_auf_Lubuntu_14.04_LTS:_Ersatz_für_"Jupiter"_zur_Hardwaresteuerung?
Maik Lehmberg, 23.04.2014 07:05
Am 22.04.2014 um 16:22 h schrieb Uwe Herrmuth: [...] > Für das Schalten von WLAN und anderem Drahtlos-Ge...
[EasyLinux-Ubuntu] [OT] Tbird: chrome://messenger/content/mailWindowOverlay.js:1374
"J.Bilder", 23.04.2014 05:58
Hallo Liste, chrome://messenger/content/mailWindowOverlay.js:1374 habe seit einiger Zeit diese Meldung in T...
Re: [EasyLinux-Ubuntu] [zur Info] KMail
Heiko, 23.04.2014 00:11
Am Dienstag, 22. April 2014, 23:48:31 schrieb Heinz-Stefan Neumeyer: Hallo Stefan. > Am Dienstag, den 22...