Wie erstelle ich einen Dienst, der ausgewählten Text in Anführungszeichen setzt?

Ich möchte einen Dienst erstellen, der jeden Text, den ich in TextEdit oder Webseiten-Texteditoren auswähle, in Anführungszeichen setzt. Ich verstehe, dass Automator das zu verwendende Tool ist, aber wie erstelle ich diese Aktion mit AppleScript oder einer anderen Skriptsprache in OS X (Lion)?

Antworten (1)

Eine Möglichkeit besteht darin, einen Dienst zu erstellen, der einen Shell-Befehl ausführt.

Öffnen Sie dazu Automator, erstellen Sie einen neuen Dienst, aktivieren Sie "Ausgabe ersetzt ausgewählten Text", und fügen Sie dann die Aktion "Run Shell Script" hinzu. Schreiben Sie in das Feld, in das Sie das Shell-Skript eingeben:

cat | sed 's/^/"/' | sed 's/$/"/' | sed 's/""//'

Dies nimmt den eingegebenen Text als Eingabe und fügt am Anfang und am Ende ein Anführungszeichen hinzu.

Wenn Sie jetzt Ihren Dienst gespeichert haben, können Sie beispielsweise zu TextEdit gehen, den Text auswählen, den Sie zitieren möchten, dann zu Dienste -> "Name Ihres Dienstes" gehen, und Ihr Text sollte jetzt zitiert werden!

So sieht der Automator Service aus

Bearbeiten: Ich habe das Entfernen von nachgestellten doppelten Anführungszeichen eingefügt

Vielen Dank! Das funktioniert, allerdings mit einem ungewollten Nebeneffekt: Wenn ich per Dreifachklick einen ganzen Absatz auswähle und dann den Dienst anwende, wird in einer neuen Zeile ein zusätzlicher Satz leerer Anführungszeichen eingefügt. Ich vermute, dass dies mit dem Zeilenvorschub zu tun hat, der den Absatz beendet, da dies nicht passiert, wenn ich Text "manuell" auswähle und den LF / Absatzumbruch am Ende weglasse. Wie könnte dies im Skript korrigiert werden?
Eine einfache Problemumgehung ist die Verwendung von: cat | sed 's/^/"/' | sed 's/$/"/' | sed 's/""//'Dadurch werden alle doppelten Anführungszeichen ("") entfernt, die möglicherweise vorhanden sind.
Danke noch einmal. Jetzt habe ich auch eine Tastenkombination für diesen Dienst in Systemeinstellungen > Tastatur erstellt.
Ich habe meine Antwort so geändert, dass die nachgestellten Anführungszeichen entfernt wurden
Das ist nett, aber ich kann nicht umhin, darauf hinzuweisen, dass das Shell-Skript folgendermaßen verkürzt werden kann: sed -E 's/^(.+)$/"\1"/'(auf einer einzelnen Zeile).
@HaraldHanche-Olsen Vielleicht möchten Sie Ihren Kommentar hier als alternative Antwort posten und vielleicht auch das einbeziehen, was Sie auf TeX Stackexchange gepostet haben, da es eindeutig eine überlegene Lösung ist.