The UNIX Pipe Card Game: Process Substitution
https://punkx.org/unix-pipe-game/ext-0.1/
Это дополнение к The Unix Pipe Game с гораздо более сложными задачами, добавляющее команды paste, tr, cut, bc.
Дополнение предполагает, что родитель знаком с базовыми unix-командами: cat, grep, tail, head, wc, sort, uniq, **paste, tr, cut, bc**. Родитель также должен показать эти команды в действии на компьютере. Если у вас нет UNIX-системы, вы можете использовать jslinux в вашем браузере.
- распечатайте сами: unix-pipe-cards-v01.pdf, unix-pipe-ext-v01-box.pdf
- код: unix-pipe-game/ext-0.1
- автор: github.com/jackdoe
- соавтор: Jackie
- контакт: b0000@fastmail.com
- лицензия: CC BY 4.0
NB: Вы не можете играть в это дополнение без базовой игры. Причина в том, что задачи требуют значительно больше карт, и в одной колоде просто нет места. Мне жаль, я действительно пытался сделать колоду самодостаточной, но в итоге решил использовать две колоды, чтобы игра стала интереснее.
Концепция подстановки процессов кратко объясняется в колоде, новые команды также кратко описаны, но я могу объяснить лишь столько в ~1000 символах — этого точно не хватит, чтобы объяснить всё вашим детям, поэтому лучше дать им немного поиграть в командной строке, чтобы почувствовать, как работают paste, tr, cut, bc.
Пример игрового раунда
Задача: вычислить средний рейтинг: sum(rating) / (количество фильмов)
Сначала создаём один процесс для cat файла, берём колонку с рейтингами, пропускаем заголовок, соединяем строки через + и передаём в калькулятор. Также нужно посчитать количество фильмов в файле, затем используем paste, чтобы объединить эти выводы через /, и снова передаём в калькулятор:
paste -d/- <(<span style="color:red">cat 03.txt | cut -f 4 -d, | grep -v Rating | paste -sd+ | bc</span>) <(<span style="color:blue">cat 03.txt | grep -v Rating | wc -l</span>) | bcПравила
Эта игра требует The UNIX Pipes Game
версии 0, которую можно получить здесь:
https://punkx.org/unix-pipe-game/
Она содержит sort, cat и другие команды,
необходимые для решения задач в этом
дополнении.
Правила те же:
> 1. Самый молодой игрок выбирает задачу
из карты задач. Нельзя выбирать одну
и ту же задачу дважды.
> 2. Перемешайте карты из обеих колод.
> 3. Положите карты рубашкой вверх на стол.
> 4. По часовой стрелке каждый игрок берёт
верхнюю карту из колоды и пытается
выполнить задачу.
> 5. Первый игрок, выполнивший задачу,
получает очко.
> 6. ЕСЛИ задач больше нет, ПЕРЕЙТИ к шагу 8
> 7. ПЕРЕЙТИ к шагу 1.
> 8. ИГРА ОКОНЧЕНА. ВСТАВЬТЕ МОНЕТУ. ПЕРЕЙТИ к шагу 8ЗАДАЧИ
- * поменять местами колонки рейтинга и названия
- * напечатать количество голосов последней строки
- * удалить колонки Rank и Votes
- * напечатать только колонку с названиями в верхнем регистре
- * напечатать первый и последний фильм
- * напечатать разницу в голосах между самым и наименее популярным фильмом
- * просуммировать голоса
- * просуммировать голоса фильмов 2016 года
- * показать название лучшего по рейтингу фильма, только название, без других колонок
- * заменить запятые на табуляцию, удалить пробелы
- * напечатать названия как одну гигантскую строку: Sing Interstellar ...
- * вычислить средний рейтинг: sum(rating) / (количество фильмов)


