27 янв. 2016 г. 15:55 пользователь "Alexei Khlebnikov" < [email protected]> написал: > > Привет всем, > > Хочу предложить воркшоп по обработке текста в Bash с помощью Unix-утилит. > > > == Зачем это нужно == > > В Unix, да и не только, много информации представлено в виде текста. Это всевозможные листинги, отчёты, исходные коды, конфиги, логи, вывод command-line утилит и так далее. Часто возникает задача извлечь из большого количества текста что-то полезное, или отфильтровать что-то ненужное, или преобразовать в более удобоваримую форму, или отсортировать, или посчитать какую либо статистику по данным. Или переименовать файлы, сгенерив для них имена. Некоторые люди пишут большие программы на С для этого и потом мучительно их отлаживают, или забивают и делают работу вручную, тратя неимоверную кучу времени. Другие люди пишут программы попроще на Ruby/Python/Perl. Очень часто такой подход - overkill. Да и не все мы программисты. Написать однострочник в shell - легче и гораздо быстрее. Как это делать, комбинируя стандартные (и не очень) утилиты командной строки - научит данный воркшоп. > > == Целевая аудитория == > > Этот воркшоп будет полезен для новичков и людей поопытнее, хотящих упорядочить свои разрозненные знания по обработке текста с помощью Unix-утилит. По моему опыту, для многих людей grep - самая сложная утилита, что они используют. Так изменим же это! > > Обработка текста - > Полезна новичку, > И крутому профи, > И даже старичку. > > == Что в программе == > > * Напоминание, что такое piping, оно же перенаправление ввода-вывода в shell. > * Специальные источники ввода и приёмники вывода. > * Рассмотрение стандартных (и не очень) утилит: echo, cat, cut, tac, seq, head, tail, touch, tr, xxd, sort, uniq, grep/egrep/pgrep, wc, tee, find, xargs, sed, awk, rpl, rename, etc. > * Вскользь упоминаются perl и ruby. > * Комбинирование утилит, построение длинных однострочников шаг за шагом и их отладка. > * Генерация одних скриптов другими и их запуск, с предпросмотром результата генерации и без. > * "for" vs "xargs". > * Некоторые отличия GNU- и BSD- наборов утилит. > * Полезные и вредные пробелы. Как использовать первые и бороться со вторыми. > * Регулярные выражения. > * "Полный" курс Awk на 13 слайдах. Офигейте от того как прост и мощен Awk, как офигел когда-то я. > * Флеймообразующее: Почему Sed - отстой, и его область применения следует ограничить, хоть и не отказаться от него полностью. > * Философское: Структурированный текст - это база данных, с записями и полями. > * Границы применимости "маленьких" утилит и когда таки стоит использовать Ruby/Python/Perl. > > > Будет ли народу интересен такой воркшоп?
Это огромный объём информации. Реально. Даже с учётом того, что базовые вещи, вроде того, как шелл ищет и обрабатывает команды, объяснять вряд ли нужно. Идею в целом поддерживаю, готов помочь, но, повторюсь, заявленный объём нужно резать раза в четыре. Минимум. -- Vadim Zhukov
_______________________________________________ Talks mailing list [email protected] http://lists.lvee.org/mailman/listinfo/talks
