Введение в Bash-скриптинг
Alex Scriven
Data Scientist
В этом курсе рассматриваются:
Для начала — почему именно Bash?
Bash расшифровывается как 'Bourne Again Shell' (игра слов)
Разработан в 80-х, но по-прежнему популярен. Оболочка по умолчанию во многих Unix-системах и на Mac
Unix — это основа интернета! (запуск ML-моделей, конвейеров данных)
Итак, зачем нужен Bash-скриптинг?
Для прохождения курса потребуются базовые знания.
cat, grep, sed и другимиЕсли что-то подзабылось — не беспокойтесь, сейчас повторим!
Важные команды оболочки:
(e)grep фильтрует ввод по шаблону регулярного выраженияcat объединяет содержимое файлов построчноtail \ head выводят только последние или первые -n строк (флаг)wc подсчитывает слова или строки (флаги -w -l)sed выполняет замену строк по шаблону«Regex», или регулярные выражения, — важнейший навык для Bash-скриптинга.
Вам часто потребуется фильтровать файлы, данные внутри них, сопоставлять аргументы и решать множество других задач. Стоит освежить эти знания.
Для проверки регулярных выражений удобно использовать такие сайты, как regex101.com
Повторим команды оболочки на примере.
Предположим, есть текстовый файл fruits.txt с 3 строками данных:
banana
apple
carrot
Если запустить grep 'a' fruits.txt, получим:
banana
apple
carrot
А если запустить grep 'p' fruits.txt, получим:
apple
Напомним: квадратные скобки задают набор символов для сопоставления, например [eyfv]. Символ ^ инвертирует набор (исключает указанные символы/цифры)
Таким образом, grep '[pc]' fruits.txt вернёт:
apple
carrot
Вы, вероятно, уже использовали «пайпы» в терминале. Если в файле очень много фруктов, можно применить sort | uniq -c
wc -l и headcat new_fruits.txt | sort | uniq -c | head -n 3
14 apple
13 bannana
12 carrot
Введение в Bash-скриптинг