Mengenoperationen auf Listen in bash

Tuesday, April 5th, 2011

Ein eigentlich alltägliches Problem, welchem ich mich aber noch nicht richtig gestellt habe, da es meist kleine (aber oft ineffektive) Workarounds gibt.

Zur Betrachtung:
Eine Zeile einer Liste entspricht einem Element in der Menge.

Anmerkungen:
Das Programm comm erwartet sortierte Listen.

Deshalb betrachten wir hier zwei sortierte (mittels sort) und eindeutige (durch uniq, nach voriger Sortierung) Listen, welche also entsprechend auch als zeilenweise Mengen aufgefasst werden können.

Ich nenne sie in dem Beispiel A und B.

Hier nun ein paar Ansätze zum Durchführen von gängigen Mengenoperationen:

  • Vereinigung (A∪B)
    sort -m A B | uniq
  • Komplement (A\B)
    comm -23 A B
  • Schnitt (A∩B)
    comm -12 A B

Durch diese Grundoperationen Vereinigung, Komplement und Schnitt lassen sich vielfäligte Operationen sehr leicht und effizient auf Listen implementieren.

Quelle: http://wordaligned.org/articles/shell-script-sets [4.4.2011 11:30]

bier

Wikipedia und die Mathematik

Wednesday, August 26th, 2009

An dieser Stelle muss ich einfach mal ein großes Lob an die vielen Mathematiker loswerden, die sich so rege an der Wikipedia beteiligen. Mittlerweile kann man sich dort über so gut wie jedes in der Mathematik vorkommendes Thema informieren und die Qualität der Beiträge kann sich sehen lassen.
Sie sind sachlich korrekt, informativ aber trotzdem sehr leserlich geschrieben und durch die Verlinkung innerhalb der wiki trifft man alle paar Minuten auf ein neues spannendes Thema (wenn es einen interessiert).
Die Grundlagendebatte der Mathematik dürfte auch ein für nicht-Mathematiker amüsantes Thema sein, und ist ein gutes Beispiel für mein Lob.
Ich kann auch nur diversen Dozenten ans Herz legen, sich mal einem ebenso interessanten und motivierenden Stil anzunähern.

Bier


Stoppt die Vorratsdatenspeicherung! Jetzt klicken & handeln!Willst du auch bei der Aktion teilnehmen? Hier findest du alle relevanten Infos und Materialien: