In deze opdracht gaan we binaire bestanden doorzoeken. Standaard, als egrep merkt dat een bestand het gezochte patroon bevat, maar dat dit bestand ook niet-printbare ASCII-tekens bevat, zal egrep deze karakters niet printen, maar zal het gewoon een algemene melding printen dat het programma inderdaad het patroon bevat. Probeer dit zelf eens uit door in het bestand /bin/bash te zoeken naar de tekst ‘GNU’. Probeer dan ook eens te kijken hoe /bin/bash er uit ziet met less. (bash is het programma dat de shell waarmee je aan het werken bent verzorgt.)

Nu is /bin/bash een binair, uitvoerbaar bestand. Maar het bevat ook tekst (zoals foutmeldingen die het kan uitprinten). In deze opgave gaan we door middel van egrep een aantal van die stukken tekst toch afprinten. Hierbij is het alvast nuttig om te weten dat egrep een optie --text heeft om te forceren dat ook matches in binaire bestanden uitgeprint worden. Bovendien zijn we nu niet meer geinteresseerd in de ‘volledige lijnen’ die matchen, maar enkel in de woorden zelf. Om enkel de stukken bestand uit te printen die voldoen aan de expressie, kan je het argument --only-matching gebruiken.

  1. Begin met /bin/bash te doorzoeken op alle ‘woorden’ van minstens 4 letters lang. Hierbij zoeken we enkel naar letters!
  2. Vervolgens gaan we alle sequenties van 4 tekens zoeken die niet alleen een letter, maar ook een cijfer, een komma, en een spatie kunnen bevatten
  3. Tot slot willen we alle ‘zinnen’ die bestaan uit minstens 4 opeenvolgende, door een spatie gescheiden woorden, waarbij een woord bestaat uit minstens 2 alfanumerieke karakters.

Merk tot slot op dat er in de praktijk ook een tool strings bestaat die gelijkaardige functionaliteit out of the box aanlevert, dit kan later altijd van pas komen.