Видел очень хороший доклад Дмитрия Левина по юскейсам strace.
Построено было как длинная последовательность слайдов с примерами
запуска. Докладчик объяснял, что в них делается, в духе "а вот так с ним
можно сделать вот это". Материала было очень много (некоторые
записывали, другие надеялись на видео), но в целом несмотря на объём,
получилось классно.
Мне кажется, чем-то похожий подход мог бы по обсуждаемому воркшопу
получиться. Тем более, если считать это не ликбезом, а
способом систематизировать собственные знания (т.е. по факту подсмотреть
несколько прикольных трюков)
:)
27.01.2016 23:01, Vadim Zhukov пишет:
27 янв. 2016 г. 15:55 пользователь "Alexei Khlebnikov"
<[email protected] <mailto:[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
_______________________________________________
Talks mailing list
[email protected]
http://lists.lvee.org/mailman/listinfo/talks