18.7.6. Выполнение суммирования
18.7.6. Выполнение суммирования
Довольно часто приходится сталкиваться с задачей считывания информации из файла и выполнения суммирования по определенным столбцам, содержащим числа. Предположим, в файле total.txt находятся данные о продажах отделами stat и gift..
$ pg total.txt
STAT 3444 GIFT 233 GIFT 252 GIFT 932 STAT 212 STAT 923 GIFT 129
Задача состоит в подсчете общей суммы всех записей отдела gift. Чтобы сохранить общие значения сумм, применим оператор expr. Как показано в следующем операторе expr, переменным loop и total первоначально вне цикла присваивается значение ноль. Когда сценарий выполняет цикл, значение переменной items добавляется к значению переменной total. В первую итерацию цикла входит только первый пункт, но в дальнейшем к накапливающимся значениям переменной total добавляются значения переменной items.
Следующий оператор expr увеличивает значение счетчика.
LOOP=0
TOTAL=0
while…
TOTAL=`expr $TOTAL + $ITEMS`
ITEMS=`expr $ITEMS + 1`
done
Очень распространенной является такая ошибка: при работе с оператором expr забывают сначала инициализировать переменную.
LOOP=0
TOTAL=0
Если переменная не инициализирована, на экране появится сообщение об ошибочном применении оператора expr. При необходимости можно инициализировать переменную в цикле:
TOTAL=`expr ${TOTAL:=0} + ${ITEMS}`
В вышеприведенном примере переменной total присваивается значение нуль, если эта переменная не имеет значения. Чаще распространен первый вариант инициализации переменных с помощью оператора expr. Не забывайте выводить на экран конечное общее значение, полученное в результате выполнения цикла.
Рассмотрим следующий сценарий.
$ pg total
#!/bin/sh
#общая сумма
#инициализация переменных
LOOP=0
TOTAL=0
COUNT=0
echo "items Dept"
echo " "
while read DEPT ITEMS do
# сохраните результаты подсчета при просмотре общих записей
COUNT=`expr $COUNT + 1`
if [ "$DEPT"="GIFT" ]; then
# сохраните выполнение суммирования TOTAL=`expr $TOTAL + $ITEMS` ITEMS=`expr $ITEMS + 1`
echo -e "$ITEMS $DEPT"
fi
#echo $DEPT $ITEMS done < total.txt
echo $TOTAL
echo "There were $COUNT entries altogether in the file"
При выполнении сценария получим:
$ total
Items Dept 234 GIFT 253 GIFT 933 GIFT 130 GIFT ====== ====== 1546There were 7 entries altogether in the file
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
if - Выполнение или не выполнение предложений в зависимости от условий
if - Выполнение или не выполнение предложений в зависимости от условий ifПозволяет выполнить или не выполняет определенные предложения в зависимости от заданного условияСинтаксис:if (condition) { statements}Аргументы:В целом, предложение if завершается закрывающей фигурной скобкой
Выполнение AMANDA
Выполнение AMANDA Пакет AMANDA включает программное обеспечение как сервера, так и клиента. Серверные программы следует установить на компьютере, выполняющем функции сервера резервного копирования, а клиентские программы — на клиенте резервного копирования. Для
5.3. Выполнение команд
5.3. Выполнение команд Как было отмечено выше, одна из основных функций оболочки состоит в том, чтобы организовать исполнение команд пользователя, вводимых им в командной строке. В частности, оболочка предоставляет пользователю два специальных оператора для организации
Выполнение файлов
Выполнение файлов Теперь рассмотрим несколько команд для выполнения или регистрации файлов. Например, как можно установить INF-файл с помощью команды rundll32.exe? Для этого применяется несколько команд, каждая из которых предназначена для отдельной версии INF-файлов.Чтобы
Выполнение команд
Выполнение команд До сих пор мы только указывали свойства и параметры объекта Command, но не выполняли эти команды. Существует три стандартных способа выполнения команд для объекта Command и один способ для объекта SqlCommand.• Метод ExecuteNonQuery. Выполняет команду SQL и не возвращает
Выполнение макросов
Выполнение макросов Весь смысл записи макросов состоит в возможности их последующего воспроизведения или, если предпочитаете, выполнения. Наблюдение за тем, как достаточно сложный макрос выполняет за вас целую кучу утомительной работы, несомненно, можно отнести к тем
Выполнение макроса
Выполнение макроса Запуск макроса из диалогового окна Макрос вряд ли можно назвать большим достижением.Выполняемая при этом последовательность шагов должна быть такой.1. Выберите макрос из списка ниже поля Имя.2. Щелкните на кнопке Выполнить.Ну как, круто? Как
Выполнение тестов
Выполнение тестов Автоматизация тестирования — это больше, чем просто написание отдельных тестов. Если подумать, что еще нужно для хорошего результата, мы увидим, что в автоматизации не обойтись без компиляции тестов и их выполнения, анализа, сортировки и формирования
2.1. Выполнение SQL-команд
2.1. Выполнение SQL-команд Прежде чем выполнять SQL-команды, необходимо подключиться к работающему серверу MySQL (как это сделать, рассказывалось в главе 1). В этом разделе вы узнаете, как создавать SQL-команды и передавать их серверу для выполнения.Если вы используете командную
Параллельное выполнение CLR
Параллельное выполнение CLR "Копнув" чуть глубже, мы увидим, что платформа .NET поддерживает параллельное выполнение, т.е. на одной машине можно установить несколько версий платформы .NET (во время создания этой книги были доступны версии 1.0.1.1 и 2.0). Сам файл mscoree.dll размещается в
Выполнение программы
Выполнение программы Каждая программа на языке Си содержит главную функцию. В языке Си главная функция программы должна иметь имя main. С функции main начинается выполнение программы; обычно она управляет выполнением программы, организуя вызовы других функций. Программа
Выполнение восстановления
Выполнение восстановления Синтаксис восстановления базы данных из копии следующий.POSIX:$] ./gbak {-c[reate] | -r[eplace_database] } <режимы> исходная-копия база-данных или$] /opt/firebird/bin/gbak {-c[reate] | -r[eplace_database] } <режимы> исходная-копия база-данныхWindows:C:Program FilesFirebirdFirebird_1_5in> {-c[reate] | -r[eplace database]
Выполнение проверки
Выполнение проверки В первую очередь используются переключатели -v[alidate] и -f[ull] утилиты gfix для проверки структур записей и страниц. Процесс проверки сообщает о разрушенных структурах и освобождает неназначенные фрагменты записей или "осиротевших страниц" (т. е. страниц,
Выполнение преобразования
Выполнение преобразования Несмотря на полную свободу в порядке выполнения шаблонов, правила изменения контекста и компоновки результирующего дерева, спецификация XSLT оговаривает очень четко — это делает XSLT весьма гибким языком, программы на котором при этом
Выполнение и оптимизация
Выполнение и оптимизация При разработке игр с помощью программы Flash всегда возникает вопрос о скорости. До пятой версии Flash язык программирования был недостаточно эффективным и не позволял создавать многие игры. Но даже версия 5 была довольно медленной. Достаточно