Frage

Ich habe 7 Textzeilen:

a
b
c
d
e
f
g

Jetzt möchte ich Zeichen an das Ende jeder Zeile hinzufügen, um am Ende mit:

a,
b,
c,
d,
e,
f,
g,

fand ich, dass ich den „sed“ Befehl verwenden kann und meine Auswahl durch sed mit „Filtern durch Befehl“ in Textmate

laufe
sed 's/$/,/'

Nun bleibt die Frage: Wie kann ich das wiederum in einen Textmate-Befehl, den Eingang in irgendeiner Art und Weise nimmt (so weiß er, welcher Text anfügen)

(Meine Versuche in dies zu tun haben als erfolglos erwiesen)

War es hilfreich?

Lösung

Pop diese in einen Befehl im Text Bündel, wird es anhängen, was in der Zwischenablage in das Ende aller Linien ist, die ausgewählt wurden:

#!/bin/bash
if [[ $(pbpaste|wc -l) -eq 0 ]]
    then r=`pbpaste`
    sed 's/$/'$r'/'
    else sed 's/$/,/'
fi

Es ist derzeit begrenzt eine Zeile im Wert von Text angehängt, wenn die Zwischenablage mehr als eine Zeile enthält es am Ende der ausgewählten Linien zu einem Komma nicht erfüllt.

Edit:

Um dies zu nehmen ein wenig weiter, hier ist eine Version, die ein Dialogfeldes zur Verfügung, die für die Eingabe der Zeichenfolge aufgefordert, die jede Zeile in der Auswahl angehängt wird:

#!/bin/bash
r=$(CocoaDialog inputbox --title "String to be appended to EOL" \
   --informative-text "Enter string:" \
   --button1 "Okay" --button2 "Cancel")

[[ $(head -n1 <<<"$r") == "2" ]] && exit_discard

r=$(tail -n1 <<<"$r")

sed "s/$/$r/"

Andere Tipps

Text Menü gibt es bereits einen Befehl " Bearbeiten Sie jede Zeile in Auswahl " genau dies tun. Es wird Cursor auf erste Zeile setzen und Sie dort, welche Art in jeder Zeile wiederholt.

Erstellen

einen neuen Befehl im Bundle Editor

#!/bin/bash
sed 's/$/,/'

Auf dem Eingang Dropdown wählen Sie Ausgewählter Text oder Nichts
Am Ausgang wählen Sie Ersetzen vorhandenen Text

ich es getestet und es funktioniert gut.
Sie können auch eine Tastenkombination wählen, um sie effizienter zu machen.

Wenn Sie bereit sind, den Befehl Route zu vermeiden und einfach die Suche verwenden / Ersetzen-Dialog einfach wie folgt vor:

  • highlight / wählen Sie die Linien würden Sie anhängen möchten
  • Öffnen Sie das Dialog
  • überprüfen 'Reguläre Ausdrücke'
  • im ‚Suchen‘ Feld, fügen '$' (das Ende der Zeile anzuzeigen)
  • im Feld 'Ersetzen', fügt ',' (was Sie angehängt wollen)
  • halten Option, wird sich das ändern "Alle ersetzen" auf "In-Auswahl"

Diese Technik kann in einer Reihe anderer nützlicher Weise angewandt werden. Zum Beispiel '$' Wechsel '^' wenn Sie jede Zeile voranstellen wollen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top