Jag skulle börja med att tackla filändelser och hantera datum när det är klart. En bra resurs för att ta reda på hur ett kommando fungerar är att läsa manualfilen med hjälp av "man <kommando>", till exempel "man bash" för att få hjälp med kommandot "bash" (alltså skalet som du använder, "shell" på engelska). I manualen till bash finns det ett kapitel som heter "Pipelines", där det förklaras hur "pipes" fungerar. Här är en länk till en onlineversion av manualen: https://www.gnu.org/software/bash/manual/html_node/Pipelines....
Kortfattat kan man se en "pipe" som ett sätt att koppla ihop kommandon (och filer). De två vanligaste formerna är ">", som du använde tidigare och kopplar ihop "stdout" (standard output) med skrivande till en fil, och "|" som kopplar ihop "stdout" från ett kommando till "stdin" till ett annat kommando. I den tidigare uppgiften använde du "ls - l > uppdrag.txt" för att koppla stdout från "ls -l" till filen "uppdrag.txt". På ett liknande sätt kan du koppla ihop stdout från "ls -l" till ett annat kommando, till exempel "cat" genom att använda "ls -l | cat". Eftersom kommandot "cat" i sin grundform bara upprepar allt den får, alltså kopierar raderna den får via stdin till stdout, kommer du inte att se någon större skillnad, eller?
(Här är tanken att du ska testa dig fram till vad som händer, men en nödvändig detalj att känna till är att "ls" kan se om den körs interaktivt (ensamt från ett skal) eller som en del av ett annat kommando.)
Provkör gärna och se vad skillnaden blir mellan att köra "ls" och "ls | cat".
---
När det kommer till "grep" är det ett väldigt användbart kommando. Åter igen hjälper manualen oss på traven genom att förklara att vi behöver något som heter "pattern" när vi kör grep. Här ser vi också att grep kan (men inte måste) ta ett filnamn som argument, så vi kan provköra grep mot en fil.
Testa nu att köra "grep <någon klurig sträng att testa med> uppdrag.txt" och se om du kan komma på vad din kluriga sträng gör. Testa gärna med diverse ord och rader som du redan ser på skärmen.
---
När du har börjat få ett hum om hur grep fungerar kan vi prova att sätta ihop grep med ett annat kommando genom en pipe, då börjar det nämligen hända spännande saker!