Как выполнить несколько команд в одном цикле?
Вывод имён файлов полезен для отладки, но главная цель циклов — обрабатывать сразу несколько файлов. Этот цикл выводит вторую строку каждого файла с данными:
for file in seasonal/*.csv; do head -n 2 $file | tail -n 1; done
Его структура такая же, как у других циклов, с которыми вы уже работали: единственное отличие в том, что тело цикла представляет собой конвейер из двух команд, а не одну команду.
Это упражнение является частью курса
Введение в Shell
Инструкции к упражнению
Напишите цикл, который выводит последнюю запись за июль 2017 года (2017-07) из каждого сезонного файла. Результат должен быть похож на вывод команды:
grep 2017-07 seasonal/winter.csv | tail -n 1
но выполняться для каждого сезонного файла отдельно. Используйте file в качестве имени переменной цикла и не забудьте перебрать список файлов seasonal/*.csv (вместо 'seasonal/winter.csv', как в примере).
Практическое интерактивное упражнение
Превратите теорию в практику с помощью одного из наших интерактивных упражнений
Начать упражнение