Sed 1
Uppgift för att träna på reguljära uttryck och textprocessering med verktyget GNU sed.
#Förkunskaper
Du behöver ha gått igenom artiklarna som berör reguljära uttryck och artikeln om sed:
#Hämta labben
Labben automatgenereras för dig. Gör så här för att checka ut din personliga labb.
Gå till din kurskatalog i terminalen och kör följande kommando.
# Flytta till kurskatalogen
dbwebb create sed1
Materialet till labben skapas nu och sparas i din kurskatalog enligt följande.
Fil | Innehåll |
---|---|
instruction.html |
Beskrivning av labben och de uppgifter som skall göras. |
answer.bash |
Här skall du skriva din kod för att lösa respektive uppgift i labben. |
emails.txt |
textfil för vissa av uppgifterna. |
numbers.txt |
textfil för vissa av uppgifterna. |
quotes.txt |
textfil för vissa av uppgifterna. |
substitution.txt |
textfil för vissa av uppgifterna. |
Öppna filen instruction.html
i en webbläsare och läs igenom de uppgifter som labben omfattar.
Öppna filen answer.bash
i din texteditor och koda ihop svaren på uppgifterna.
Skriv din bash kod inom $( )
för att den ska exekveras och returnera svaret, tex:
ANSWER=$( sed -E -n '/regex/p' filename.txt )
Du kan testa dina lösningar genom att köra programmet answer.bash
i din terminal. De flesta terminaler bör fungera fint. För säkerhets skull bör du exekvera labben inuti en container med Ubuntu:22.04.
$ ./answer.bash
#Krav
Gör de uppgifter som finns i labben
instruction.html
.Skriv dina lösningar, på rätt plats, i filen
answer.bash
.Testkör din labb genom att köra filen
answer.bash
.Ladda upp, validera och publicera labben genom att göra följande kommando i kurskatalogen i terminalen.
# Flytta till kurskatalogen
dbwebb validate sed1
dbwebb publish sed1
Rätta eventuella fel som dyker upp och publisera igen. När det ser grönt ut så är du klar.
#Tips från coachen
Använd https://regex101.com/ för att snabbt testa och följa uttrycken. Tänk på att det kan skilja lite mellan programmen som hanterar regex.
Lycka till och hojta till i Discord om du behöver hjälp!
#Revision history
- 2023-09-13: (A, lew) Ny inför HT23.