Introduktion till Bash-skriptning
Alex Scriven
Data Scientist
Den här kursen täcker:
Varför Bash?
Bash står för 'Bourne Again Shell' (en ordlek)
Utvecklades på 80-talet men är ett mycket populärt skal idag. Standard i många Unix-system och på Mac
Unix driver internet! (ML-modeller, datapipelines)
Varför Bash-skriptning?
Du förväntas ha viss grundläggande kunskap inför den här kursen.
cat, grep, sed m.fl.Om det känns osäkert – vi repeterar det nu!
Några viktiga skalkommandon:
(e)grep filtrerar indata baserat på regex-mönstermatchningcat sammanfogar filinnehåll rad för radtail \ head ger bara de sista/första -n raderna (en flagga)wc räknar ord eller rader (med flaggorna -w -l)sed utför mönsterbaserad strängersättning'Regex', eller reguljära uttryck, är en viktig färdighet vid Bash-skriptning.
Du behöver ofta filtrera filer, data i filer, matcha argument och mycket annat. Det lönar sig att repetera detta.
För att testa dina regex kan du använda hjälpsamma verktyg som regex101.com
Vi repeterar några skalkommandon med ett exempel.
Tänk dig en textfil fruits.txt med 3 rader data:
banana
apple
carrot
Om vi kör grep 'a' fruits.txt returneras:
banana
apple
carrot
Men om vi kör grep 'p' fruits.txt returneras:
apple
Komma ihåg att hakparenteser utgör en matchningsmängd, t.ex. [eyfv]. Med ^ blir det en invers mängd (inte dessa bokstäver/siffror)
Så om vi kör grep '[pc]' fruits.txt returneras:
apple
carrot
Du har förmodligen använt 'pipes' tidigare i terminalen. Om vi hade väldigt många frukter i filen skulle vi kunna använda sort | uniq -c
wc -l och använda headcat new_fruits.txt | sort | uniq -c | head -n 3
14 apple
13 bannana
12 carrot
Introduktion till Bash-skriptning