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.
/bin/bash
te doorzoeken op alle ‘woorden’ van minstens 4 letters lang. Hierbij zoeken we enkel naar letters!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.