UNIX — универсальная среда программирования
UNIX — универсальная среда программирования читать книгу онлайн
В книге американских авторов — разработчиков операционной системы UNIX — блестяще решена проблема автоматизации деятельности программиста, системной поддержки его творчества, выходящей за рамки языков программирования. Профессионалам открыт богатый "встроенный" арсенал системы UNIX. Многочисленными примерами иллюстрировано использование языка управления заданиями
shell.
Для программистов-пользователей операционной системы UNIX.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
В качестве другого примера выполнения арифметических операций рассмотрим программу, подсчитывающую число страниц по 66 строк в каждой. Страницы получаются при прогоне несколько файлов через команду
prprpages$ cat prpages# prpages: подсчет числа страниц, выдаваемых prwc $* |awk '!/total$/ { n += int(($1+55)/56) } END { print n }'$Команда
prwctotalint$ wc ch4.* 753 3090 18129 ch4.1 612 2421 13242 ch4.2 637 2462 13455 ch4.3 802 2986 16904 ch4.4 50 213 1117 ch4.92854 11172 62847 total$ prpages ch4.*53$Для проверки этого результата запустим команды
prawk$ pr ch4.* | awk 'END {print NR/66}'53$Переменные программы
awks+=$1x=="abc"x>yawkВ программе
awkNRFSFILENAME | Имя текущего входного файла |
FS | Символ разделения полей (по умолчанию приняты пробел и символ табуляции) |
NF | Число полей входной строки |
NR | Число входных строк |
OFMT | Формат вывода чисел (по умолчанию принят %gprintf(3y) |
OFS | Строка разделитель полей в выходном потоке (пробел по умолчанию) |
ORS | Строка-разделитель строк в выходном потоке (символ перевода строки по умолчанию) |
RS | Символ разделения входных строк (символ перевода строки по умолчанию) |
Таблица 4.3: Встроенные переменные awk
= += -= /= %= | Присваивание; v ор=exprv=v op (expr) |
|| | ИЛИ: expr1 || expr2expr2expr1 |
&& | И: expr1 && expr2expr2 |
! | Отрицание значения выражения |
>>= <<= == != ~ !~ | Операция отношения; !!~ |
пусто | Конкатенация строк |
+ - | Сложение, вычитание |
* / % | Умножение, деление, вычисление остатка |
++ -- | Увеличение, уменьшение (префиксное или постпрефиксное) |
Таблица 4.4: Операции, выполняемые awk
Наша проверка программы
prpagesПри редактировании большого файла очень легко (судя по опыту) случайно создать копию соседнего слова, что практически никогда не происходит преднамеренно. Для устранения таких ошибок в семействе программ Writers Workbench (рабочий набор редактора) существует программа
doubleawk
