Opgave

In het bestand secret.txt1 werd een geheime boodschap verborgen. Elke regel van dit bestand bevat een bitstring (een tekenreeks die enkel bestaat uit enen en nullen) van 16 karakters lang, gevolgd door een spatie en één enkel woord van willekeurige lengte, dat dus verder geen spaties meer bevat. Volg de onderstaande aanwijzingen op om deze boodschap te kunnen ontcijferen.

  1. Bepaal reguliere expressies voor elk van de onderstaande verzamelingen, waarbij $$\mathcal{B}$$ de verzameling van alle bitstrings voorstelt. Probeer deze reguliere expressies zo kort mogelijk te houden.

    • $$ A = \{ x \in \mathcal{B}\,|\,$$ de laatste drie bits van $$x$$ zijn gelijk $$\}$$

    • $$ B = \{ x \in \mathcal{B}\,|\,$$ het aantal nullen in $$x$$ is deelbaar door 3 $$\}$$

      opmerking: nul is deelbaar door 3

    • $$ C = \{ x \in \mathcal{B}\,|\,$$ als 000 een substring is van $$x$$, dan is $$n_0(x)$$ = 3 $$\}$$ waarbij $$n_0(x)$$ het aantal nullen in $$x$$ voorstelt

    Gebruik het egrep commando om enkel die regels van het bestand secret.txt2 te selecteren met een bitstring die tot een opgegeven verzameling behoren.

  2. Beschouw de verzamelingen A, B en C zoals hierboven gedefinieerd.Het raadsel kan dan op de volgende manier worden opgelost:

    • Het eerste woord wordt gevonden op de unieke regel met de bitstring uit de verzameling A $$\cap$$ B.

    • Het tweede woord wordt gevonden op de unieke regel met de bitstring uit de verzameling A $$\cap$$ C.

    • Het derde woord wordt gevonden op de unieke regel met de bitstring uit de verzameling B $$\cap$$ C.

    Geef telkens een Unix commando dat elk van deze woorden opzoekt in het bestand en uitschrijft naar standaard uitvoer (zonder het patroon dat aan het woord voorafgaat). Hierbij is het dus niet toegelaten om het woord letterlijk uit te schrijven (bv. echo xxx).