Shell-Skript zur Ersetzung von Anführungszeichen in Dateinamen

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

4 Antworten


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: 125 Punkte bei 14 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: 85 Punkte bei 8 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: 77 Punkte bei 14 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: 97 Punkte bei 14 Stimmen.
Den Beitrag bewerten: Gut / Schlecht

Ähnliche Artikel

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 4 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...
Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...
o2 surfstick software für ubuntu?
daniel soltek, 15.07.2014 18:27, 1 Antworten
hallo zusammen, habe mir einen o2 surfstick huawei bestellt und gerade festgestellt, das der nic...

Jetzt auf den Mailinglisten

Re: [EasyLinux-Suse] Nach Update Akonadi kaputt?
Heiko, 01.10.2014 05:11
Am Mittwoch, den 01.10.2014, 03:21 +0200 schrieb Richard Kraut: > Am Montag, den 22.09.2014, 17:27 +0200 s...
Re: [EasyLinux-Suse] Nach Update Akonadi kaputt?
Heiko, 01.10.2014 04:52
Am Mittwoch, 1. Oktober 2014, 03:21:30 schrieb Richard Kraut: > Am Montag, den 22.09.2014, 17:27 +0200 sch...
Re: [EasyLinux-Suse] Nach Update Akonadi kaputt?
Richard Kraut, 01.10.2014 03:21
Am Montag, den 22.09.2014, 17:27 +0200 schrieb Hartmuth Mehdorn: > Ich stelle jetzt die ernsthafte Frage a...
Re: [EasyLinux-Suse] 13.1: Nachinstallierte Dienste starten
Richard Kraut, 01.10.2014 03:03
Am Samstag, den 20.09.2014, 20:36 +0200 schrieb Heinz-Stefan Neumeyer: Hallo Heinz-Stefan, > Start/Stop...
Re: [EasyLinux-Ubuntu] Empfehlung Media Player
Heiko, 01.10.2014 00:17
Am Dienstag, 30. September 2014, 20:18:55 schrieb Rainer: Hallo , > > nach dem Upgrade von Ubuntu...