Das Twitterlehrerzimmer feiern

Der nette Serkan Erol hat heute auf Twitter eine schöne Tradition weiter geführt: positives kollegiales Feedback (das Echo war dann auch dementsprechend groß).

Tweets von Serkan Erol

In diesen und den nachfolgenden Tweets sind eine ganze Reihe von Leuten aus der «EduBubble» auf Twitter aufgeführt. «Eigentlich solltest Du Dir diese Liste mal aufheben», war mein Gedanke. Nicht nur, um mich ebenfalls wieder mal zu bedanken, auch um bei Fragen und Ideen im Bildungsbereich gleich eine Reihe von Ansprechpartnerinnen parat zu haben. Das habe ich dann getwittert und ein paar Minuten später kam die Frage von Liz Huber, ob ich die Liste denn teilen würde.

Tweet von @Steineidechse

Der nächste Satz soll jetzt nicht arrogant klingen (es sind eher die Scheuklappen des Praktikers), aber mir war gar nicht bewusst, dass das Extrahieren dieser Liste von Twitter-Namen einen Aufwand darstellt. Oha! Wieder ein Zeichen, dass das Leeren der Schale ein wichtiger Punkt ist. Wie kann ich davon ausgehen, irgend etwas Nützliches zu vermitteln, wenn ich nicht bereit bin, die Perspektive meiner Zielgruppe einzunehmen? Danke für diese Erinnerung, Liz!

Gefeierte Leute finden

Ich werde also (auf nicht nur einem Weg) zeigen, wie sich so eine Liste extrahieren lässt, warum die Beherrschung einiger grundlegender Werkzeuge meiner Meinung nach sehr zeitsparend sein kann und dass viele gute Ideen in der IT bereits Jahrzehnte alt sind.

Den Text der Tweets in eine Textdatei bringen

Was für fast alle Ansätze der Ausgangspunkt ist: wir brauchen den Text der Tweets. Dazu habe ich den Tweet von Liz im Browser geöffnet. Könnt Ihr auch machen, hier ist der Link: https://twitter.com/Steineidechse/status/1150388323069964288

Jetzt nach oben scrollen, dann mit der Maus den Bereich markieren und nach unten scrollen, so dass die komplette Liste der Tweets markiert ist. Dann wir die Auswahl in die Zwischenablage kopiert. Das Video unten zeigt diesen Vorgang.

Danach füge ich den Text in meinen Texteditor ein und speichere diese Datei. Dann bleibe ich im Editor.

Ich benutze als «Haus- und Hof-Editor» Sublime Text und das aus gutem Grund. Das ist aber ein weiterer Blogpost :wink: – lasst mich an dieser Stelle nur so viel schreiben, dass ich mein Geld mit Software verdiene und dazu professionelles Werkzeug nutzen möchte. Ja, der Editor kostet Geld (aktuell 80$), aber erstens ist die Testphase mit allen Funktionen nicht zeitlich beschränkt und für dieses Ding hätte ich auch mehr ausgegeben. Verfügbar für Linux, Mac und Windows muss ich mich auch nicht umstellen, wenn ich das Betriebssystem wechsle. Natürlich ist das nicht der einzige mächtige und dennoch leicht bedienbare Editor, unter Windows wäre sicher auch Notepad++

Twitterhandles suchen

Nach dem Einfügen des Textes der Tweets sieht der Editor dann so aus wie im nachfolgenden Screenshot.

Sublime Editor

Jetzt kann aus dem Text alles weg ausser den Twitter-Handles. Wie mache ich das? Suchen. Eine Suchfunktion hat jede Leserin und jeder Leser schon benutzt, wieso komme ich jetzt mit diesen alten Kamellen ums Eck?

Weil wir nicht einfach nach einem bestimmten Text suchen können. Jeder Twittername sieht schließlich anders aus. Wir benötigen eine flexiblere Art der Suche (die es nebenbei bemerkt mit einigen Einschränkungen sogar in Word gibt! – das sollte also jeder Lehrer und jede Lehrerin wissen, die Textverarbeitung unterrichtet). Ich suche also nicht nach einem bestimmten Text, sondern beschreibe, wie der Text aussieht, den ich suche.

Das ist bei einem Twitternamen relativ einfach: «Beginnt mit einem @ und dann kommen Buchstaben, Zahlen oder Unterstriche. Wenn ein Leerraum kommt, ist der Twittername zu Ende». Andersrum: Alles, was nach dem @ kommt und kein Leerraum (Leerzeichen, Tabs, etc) ist, gehört zum Twitternamen.

Nun gibt es dafür seit den 60er Jahren (yep, das ist alt) eine schöne Möglichkeit, sowas für eine Suche zu beschreiben. Etwas, dass zusammen mit einigen anderen Konzepten auch kurz vor 2020 noch zum grundlegenden Handwerkszeug der Verarbeitung von Text gehört: reguläre Ausdrücke. Klingt kompliziert, ist es aber eigentlich gar nicht. Ich möchte das an dieser Stelle gar nicht vertiefen und verweise auf den zugehörigen Wikipedia-Artikel. Ich möchte die Vorteile lieber am praktischen Beispiel unserer Twitterliste zeigen.

Ich öffne die Suche in SublimeText und geben als Suchbegriff @\S+ ein. Bedeutet übersetzt in Deutsch: «*da kommt ein @ und dann etwas, dass kein Leerraum ist (das \S) und das kann einmal oder mehrmals (+) vorkommen. Sublime findet dann alle Vorkommen, die diese Bedingung erfüllen und markiert sie (s. unten).

Suche in SublimeTExt

Jetzt nutze ich die Funktion [Find All] des Editors, damit werden alle Fundstellen auf einmal markiert. All das kann ich jetzt über [Strg]C in die Zwischenablage kopieren.

Sortieren und Duplikate raus

Ich erzeuge ein neues Editor-Fenster und füge den Text da ein. Wie Du siehst, werden wirklich nur die gefundenen Textstellen eingefügt, jeder Fund in einer Zeile.

Eingefügt in neuem Fenster in Sublime

Das ist jetzt aber noch «Kraut und Rüben», da viele Einträge doppelt sind und auch nicht sortiert.

Dazu im Edit-Menü einmal kurz auf «Sort Lines» geklickt und dann auf «Permute Lines > Unique» und schon wirft mir der Editor alle Duplikate aus der sortierten Liste raus. Übrig bleibt genau das, was ich haben wollte: eine Liste aller Twitternamen, die da in all den Tweets enthalten sind und das ohne Duplikate.

Nebenbei: jetzt dürfte auch etwas klarer geworden sein, warum ich Word nicht als Texteditor benutze und das normale Notepad von Windows eine Beleidigung der Benutzer darstellt. Textverarbeitung bedeutet die Verarbeitung von Texten, nicht herum formatieren mit Auszeichnungen und Schriftarten. Das ist Layout und Typographie. Es wäre SublimeText übrigens auch egal gewesen, ob die Datei jetzt 80000 Zeilen lang oder 25 Megabyte groß gewesen wäre.

Das Ergebnis (für alle, die nicht die Geduld haben, das am eigenen Rechner nachzuvollziehen) hier als Text zum Rauskopieren und auf Eurem Rechner einfügen.

@a_siebel          @Ines_MueVo        @MTGSchulradio
@alles_sophie      @iqberatung        @pittner_manuel
@AnnaRaspe         @ivi_unterricht    @ralfa
@annekatweiss      @Jochen_Go         @rationalekritik
@AOswald79         @joerglohrer       @ReimerMarkus
@beatdoebeli       @Josef_Buchner     @S__Erol
@bernd_thoma       @Julia0Free        @SchlichtEdu
@coolschooltoday   @jweilharter       @seni_bl
@cultofpedagogy    @KaeptnKeks        @sozpaed2
@DerLinkshaender   @KirchLearning     @Steineidechse
@dieottcasts       @klassenkrempel    @stipberger
@diesdasmedien     @kunsterklarer     @SurfaceEDU
@dreadlock_dread   @kurtsoeser        @swarzste
@FlippedMathe      @la_mafaldita      @Tartharule
@fnigl1166         @lacknere          @TeacherRogueOne
@FrauFlip          @lbrechthermanns   @teachertwittBER
@FrauKers          @lehrer_online     @thePauker
@frausonnig        @lhotse77          @TobiRaue
@friolz            @Loh_Edu           @uhl_edu
@GoogleForEdu      @MaurerStef        @vedducation
@groeschc          @MAWSpitau         @VerenaKnoblauch
@H5PTechnology     @medien_lehrerin   @vilsrip
@HerrCleesattel    @medien_und        @voetzi
@herrjasper        @mike_graf         @wagjuer
@herrmayr          @MrsGreenGER       @Woe_Real
@hjethie           @MrsThurner        @wolflotter

Der andere Weg

Es habe zu Beginn noch einen anderen Weg versprochen. Hier nur der Vollständigkeit halber und mit dem Hinweis, dass niemand vor diesem Weg Angst haben muss, er aber imponierende Fortschritte bei der Produktivität verspricht: die Nutzung der Kommandozeile. (Fernes Donnerrollen und Blitze am Horizont, Wolfsgeheul und ein Windstoß, der die Blätter vom Schreibtisch fegt)1

Ja, wir haben 2019 und ja, die Kommandozeile ist nach wie vor am Leben, die Berichte der GUI-Fraktion über ihren Tod waren stark übertrieben. 😄 Wer in informationstechnischen Bereichen später seine berufliche Zukunft findet, wird irgendwann nicht umhin kommen, sich damit zu beschäftigen, sogar Grafiker und Spieleentwickler. Aber lassen wir das. Ich wollte ja zeigen, wie leicht sich das obige Ergebnis erzielen lässt.

Ich verwende für die Beispiele die Kommandozeile auf dem Mac (erstens, weil das für alle unter Linux das Gleiche ist und zweitens, weil auch Windows-Nutzer mittlerweile das nutzen können, Stichwort «WSL» – dazu später mal mehr).

Das Prinzip ist das Gleiche wie oben:

  • Text in die Zwischenablage
  • Alle Twitternamen suchen
  • Duplikate raus
  • In «hübsch» ausgeben

Dazu öffnen wir ein Kommandozeilen-Fenster (vulgo «terminal» auf dem Mac):

Das Terminalfenster

Den Text haben wir noch in der Zwischenablage. Wenn nicht, dann nochmal den ganzen Tweettext in die Zwischenablage kopieren.

Jetzt sorgen wir erst einmal dafür, dass alle Wörter und Namen in einer eigenen Zeile stehen (das brauchen wir gleich zum Suchen): dazu gebe ich folgendes Kommando ein:

pbpaste | tr "[:blank:]" "\n"

Ich füge den Inhalt der Zwischenablage ein und ersetze jedes Leerraum-Zeichen durch eine Zeilenschaltung. Jetzt erhalte ich eine Liste von vielen Zeilen in der Ausgabe. Also auf zum nächsten Schritt.

Zum Suchen nach einem solchen regulären Ausdruck, der beschreibt, was ich suche, gibt es auch ein Kommando (grep).

pbpaste | tr "[:blank:]" "\n" | grep -E "@([a-zA-Z_0-9])+"

Hier die Suche anders formuliert: «*ein @, danach irgendwas aus der Liste A-Za-z0-9 oder Unterstrich, das einmal oder mehrmals (+). Ich hätte auch genauso gut die Suche von oben nutzen können, möchte aber zeigen, dass es immer mehr als einen Weg zum Ziel gibt. 😉

Jetzt bekomme ich nur noch Zeilen mit Twitternamen. Zeit, die Duplikate rauszuwerfen und zu sortieren. Dazu dient das Kommando sort (Ha, wie kreativ):

pbpaste | tr "[:blank:]" "\n" | grep -E "@([a-zA-Z_0-9])+" | sort -u

Die Option -u bedeutet übrigens «unique», also ohne Duplikate. Das kann sort gleich für uns mit erledigen. Alles, was jetzt noch bleibt, ist eine mehrspaltige Ausgabe mit dem Kommando column (Ihr seht, die Dinger sind durchaus logisch benannt, es ist keine rocket science):

pbpaste | tr "[:blank:]" "\n" | grep -E "@([a-zA-Z_0-9])+" | sort -u | column -c 80

Die Option -c 80 gibt an, wie viele Zeichen eine Zeile lang ist, damit column weiss, wann eine Zeile gefüllt ist. Das Ergebnis sieht aus wie oben:

Die Ausgabe in der Shell

UPDATE: Der dritte Weg

Zuerst vielen Dank an Mike Graf für die Frage bzw. den Autoren seines Editors für das Nichtvorhandensein einer «Find All»-Funktion. 😉 😄

Es gibt noch einen dritten Weg und dafür musst Du sogar nicht einmal etwas installieren. Es gibt zum Thema reguläre Ausdrücke eine Website, die ich sehr gerne verwende, weil Sie Lernende gut unterstützt: https://regex101.com

Wenn Du diese Seite aufrufst, kannst Du den Text von all den Tweets in den Eingabebereich bei «Test String» einfügen und dann die Suche (ich verwende hier wieder @[A-Za-z_0-9]+) in das Eingabefeld bei «Regular Expression» eintragen. Danach werden die entsprechenden Treffer hervorgehoben.

Die Website regex101.com

Anschließend klickst rechts im Ergebnisfeld «Match Information» auf das kleine Icons mit dem Vorwärtspfeil (ja, das ist etwas versteckt).

regex101.com Match Information

Dann öffnet sich eine Dialogbox, in der Du die Treffer in mehreren Dateiformaten ausgeben und auch kopieren kannst — voila!

Export regex101.com Matches

Wie ich weiter oben schrieb – es gibt immer einen anderen Weg zum Ziel! 👍

Fazit

Egal, ob lieber GUI im Editor oder lieber per Kommando auf der Shell. Textverarbeitung und die Extraktion von Information ist keine Frage von Office oder iWorks, sondern der Beschäftigung mit der Problemstellung, Neugier und der Bereitschaft, dazu zu lernen. Dann hat man in zwei Minuten die Liste vieler netter Leute auf Twitter! 👍

Wem das zu schnell ging, wer Fragen zu «warum Sublime» hat oder mehr zum Thema Kommandozeile wissen möchte, meine DMs auf Twitter sind offen oder Ihr schickt mir eine Mail. Danke für das Interesse und das Lesen!


  1. Herzlichen Dank an Peter Ringeisen für diese Idee. Ich musste das einfach kopieren! 😉
Share Kommentieren
X

Ich habe einen Kommentar zum Artikel

Sie können die Kommentarfunktion ohne die Speicherung personenbezogener Daten nutzen. Schreiben Sie Ihren Kommentar und klicken Sie auf "Abschicken", der Versand erfolgt per Mail von meinem Auftritt aus an mich zur Prüfung. Dieser Versand und die Übertragung Ihres Kommentars ist zur Erfüllung der von Ihnen mit dem Klick auf "Abschicken" ersichtlichen Absicht technisch notwendig und bedarf keiner weiteren Einwilligung.

Wichtiger Hinweis: Sie haben keinen Anspruch auf die Veröffentlichung Ihres Kommentars. Jeder hier eingegebene Kommentar wird zuerst geprüft. Ich behalte mir die Entscheidung vor, welche Kommentare ich als Ergänzung an den Artikel anfüge.