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: 81 Punkte bei 35 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: 93 Punkte bei 11 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: 62 Punkte bei 43 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: 88 Punkte bei 21 Stimmen.
Den Beitrag bewerten: Gut / Schlecht

Ähnliche Artikel

  • Kleines Shell-Skript als Wecker
  • Einführung in die Bash-Programmierung
    Skripte sollen meist wiederkehrende oder lästige Arbeiten automatisieren. Die Standard-Shell Bash stellt Ihnen dazu eine ganze Reige von Funktionen bereit. Dieser Artikel erklärt, wie Sie ihre eigenen Shell-Skripte schreiben.
  • Bash-Skripte sind Programme
    Wer regelmäßig mit der Shell arbeitet, wird leicht zum Programmierer: Schreiben Sie mehrere Shell-Befehle in eine Textdatei und machen diese ausführbar, haben Sie schon Ihr erstes Shell-Skript entwickelt. Die Shell bietet als Programmiersprache aber noch viel mehr.
  • Shell-Skripte mit grafischen Dialogen
    Dass sich Shell-Programmierung und grafische Oberflächen nicht ausschließen, zeigt KDialog: Nie war es leichter, Shell-Skripte um User-Interaktion zu ergänzen.
  • Erste Schritte mit Bash-Skripten
    Das Programmieren von Shell-Skripten ist keine Hexerei. Schon mit wenigen Grundkenntnissen sparen Sie durch das Automatisieren alltäglicher Aufgaben viel Zeit.

Tipp der Woche

Ubuntu 14.10 und VirtualBox
Ubuntu 14.10 und VirtualBox
Tim Schürmann, 08.11.2014 18:45, 2 Kommentare

Wer Ubuntu 14.10 in einer virtuellen Maschine unter VirtualBox startet, der landet unter Umständen in einem Fenster mit Grafikmüll. Zu einem korrekt ...

Aktuelle Fragen

Start-Job behindert Bootvorgang, Suse 13.2, KDE,
Wimpy *, 20.02.2015 10:32, 4 Antworten
Beim Bootvorgang ist ein Timeout von 1 Min 30 Sec. weil eine Partition sdb1 gesucht und nicht gef...
Konfiguration RAID 1 mit 2 SSDs: Performance?
Markus Mertens, 16.02.2015 10:02, 4 Antworten
Hallo! Ich möchte bei einer Workstation (2x Xeon E5-2687Wv3, 256GB RAM) 2 SATA-SSDs (512GB) al...
Treiber für Canon Laserbase MF5650
Sven Bremer, 10.02.2015 09:46, 1 Antworten
Hallo ich weiß mittlerweile das Canon nicht der beste Drucker für ein Linux System ist. Trotzd...
Linux und W7 im Netz finden sich nicht
Oliver Zoffi, 06.02.2015 11:47, 3 Antworten
Hallo! Ich verwende 2 PCs, 1x mit W7prof 64 Bit und einmal mit Linux Mint 17 64 Bit, welches ich...
Rootpasswort
Jutta Naumann, 29.01.2015 09:14, 1 Antworten
Ich habe OpenSuse 13.2 installiert und leider nur das Systempasswort eingerichtet. Um Änderungen,...

Jetzt auf den Mailinglisten

Re: [EasyLinux-Ubuntu] Speedport W 700V
Rainer, 02.03.2015 12:04
Hallo Alfred, Am Sun, 01 Mar 2015 23:36:36 +0100 schrieb Alfred Zahlten : > >> > > Nur m...
Re: [EasyLinux-Ubuntu] [SuSE 13.2] fetchmail lock
Uwe Herrmuth, 02.03.2015 09:03
Hallo Stefan, H.-Stefan Neumeyer schrieb am 01.03.2015 um 19:13: > Ich fahre meinen Haupt-Arbeitsrechner...
Re: [EasyLinux-Ubuntu] Speedport W 700V
Alfred Zahlten, 01.03.2015 23:36
Am 01.03.2015 um 20:58 schrieb Rainer: Hallo Rainer, > [..] > >> Ich bin sicher, die Teleko...
Re: [EasyLinux-Ubuntu] Speedport W 700V
Rainer, 01.03.2015 20:58
Hallo Alfred, Am Sun, 01 Mar 2015 20:42:14 +0100 schrieb Alfred Zahlten : [..] > Ich bin sicher, die...
Re: [EasyLinux-Ubuntu] Speedport W 700V
Alfred Zahlten, 01.03.2015 20:46
Am 01.03.2015 um 18:56 schrieb Matthias Müller: Hallo Matthias, siehe meine Mail an Gerhard. Der Chromium...