Wprowadzenie do skryptów Bash
Alex Scriven
Data Scientist
Kurs obejmuje:
Najpierw zastanówmy się, dlaczego Bash?
Bash oznacza 'Bourne Again Shell' (gra słów)
Powstał w latach 80., ale jest dziś bardzo popularną powłoką. Domyślna w wielu systemach Unix i na Makach
Unix to fundament internetu! (modele ML, potoki danych)
Dlaczego warto używać skryptów Bash?
Kurs zakłada podstawową wiedzę w następujących obszarach:
cat, grep, sed itp.Jeśli wiedza jest niepewna – nie ma obaw, teraz ją odświeżymy!
Ważne polecenia powłoki:
(e)grep filtruje dane wejściowe na podstawie wyrażeń regularnychcat łączy zawartość plików wiersz po wierszutail \ head zwracają tylko ostatnie/pierwsze -n wierszy (flaga)wc zlicza słowa lub wiersze (flagi -w -l)sed zastępuje ciągi znaków na podstawie wzorców'Regex', czyli wyrażenia regularne, to kluczowa umiejętność w skryptach Bash.
Często trzeba filtrować pliki, dane w plikach, dopasowywać argumenty i wiele więcej. Warto to odświeżyć.
Do testowania wyrażeń regularnych można używać pomocnych narzędzi, takich jak regex101.com
Przejdźmy przez kilka poleceń powłoki na przykładzie.
Rozważmy plik tekstowy fruits.txt z 3 wierszami danych:
banana
apple
carrot
Jeśli uruchomimy grep 'a' fruits.txt, otrzymamy:
banana
apple
carrot
Ale jeśli uruchomimy grep 'p' fruits.txt, otrzymamy:
apple
Nawiasy kwadratowe definiują zbiór dopasowań, np. [eyfv]. Użycie ^ tworzy zbiór odwrotny (nie te litery/cyfry).
Tak więc grep '[pc]' fruits.txt zwróci:
apple
carrot
Potoki (ang. pipes) są zapewne już znane. Przy dużej liczbie owoców w pliku możemy użyć sort | uniq -c
wc -l i headcat new_fruits.txt | sort | uniq -c | head -n 3
14 apple
13 bannana
12 carrot
Wprowadzenie do skryptów Bash