Hallo,

ich möchte etwas bashscripting lernen und aus einem string den ich per curl generiere eine URL in die Zwischenablage kopieren.

der String sieht in der Regel so aus:

'xyz': 'https://kdfddorSqTryiNWAGXQR4M5lLZvYhZGqISeMR4&s=ork.net&i=3209', source.src = sources.xyz;

Was ich gerne automatisch kopieren würde ist die URL ab https://... bis 3209
https://kdfddorSqTryiNWAGXQR4M5lLZvYhZGqISeMR4&s=ork.net&i=3209

Wie stelle ich das am besten an, das mein Script den Bereich ab https bis 3209 automatisch kopiert, z.B. in die Zwischenablage von KDE?

Vielen Dank

Wenn die Anführungszeichen immer gleich sind, bekommst du so ohne viel Aufwand den URL aus deinem String:

# Dein Code, der im String endet. Hier einfach Copy Paste
# von deinem Beispiel in die Variable `string`.
string="'xyz': 'https://kdfddorSqTryiNWAGXQR4M5lLZvYhZGqISeMR4&s=ork.net&i=3209', source.src = sources.xyz;"

# Benutze awk mit definiertem Separator, geht bestimmt auch
# eleganter, effizienter, und was sonst noch alles :)
url=$(echo $string | awk -F\' '{print $4}')

# Mache irgendwas mit dem URL in der Variablen `url`
# …

Wie du das jetzt in die Zwischenalage von Kde bekommst, keine Ahnung. Eine kurze Recherche zeigt, dass es wohl so gehen sollte:

dbus-send --type=method_call --dest=org.kde.klipper /klipper org.kde.klipper.klipper.setClipboardContents string:"$url"

Aber mangels KDE kann ichs nicht ausprobieren.

Vielen Dank für die Unterstützung.
Ich bin auch schon auf awk gekommen, nur verstehe ich den ganzen Syntax davon noch nicht.
Ich werde mich da mal einlesen.

Thanks :-)

So wie Du es gepostet hast funktioniert das übrigens alles.
Nur verstehe ich das awk noch nicht, wie man auf diesen Syntax kommt.
Aber da gibt es ja Tutorials...

Danke :-)

  • Dirk hat auf diesen Beitrag geantwortet.

    ziegel So wie Du es gepostet hast funktioniert das übrigens alles.

    Freut mich, zu hören. Wenn das Thema damit für dich erledigt ist, darfst du die Diskussion hier gern noch als gelöst markieren. 🙂

    ziegel Nur verstehe ich das awk noch nicht, wie man auf diesen Syntax kommt.

    Mit -F definierst du einen eigenen Separator, ansonsten ist es halt ein Leerzeichen. \' wird benutzt, weil ' alleine sonst als normales Anführungszeichen von der Shell interpretiert werden würde, was aber nicht gewollt ist, daher eben -F\' anstatt -F', um als Separator ein ' festzulegen.

    '{print $4}' ist das, was awk machen soll und ist eben dessen syntax um das vierte übergebene Teilstück auszugeben. $1 ist der Teil vorm ersten ' in diesem Fall also ein leerer String, $2 ist xyz, $3 ist :, $4 ist eben der URL, und $5 ist , source.src = sources.xyz;.

    awk ist schon sehr mächtig, danke für die Erklärung :-)