UNIX — универсальная среда программирования
UNIX — универсальная среда программирования читать книгу онлайн
В книге американских авторов — разработчиков операционной системы UNIX — блестяще решена проблема автоматизации деятельности программиста, системной поддержки его творчества, выходящей за рамки языков программирования. Профессионалам открыт богатый "встроенный" арсенал системы UNIX. Многочисленными примерами иллюстрировано использование языка управления заданиями
shell.
Для программистов-пользователей операционной системы UNIX.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
Заметьте, кстати, что введение символа
|Используя средства этого раздела и файл
/usr/dict/wordsНапишите программу подсчета слов на предпочитаемом вами языке программирования. Сравните ее размер, скорость и самодокументированность с соответствующим конвейером. Насколько легко вы можете преобразовать эту программу в программу проверки правильности написания текста?
4.3 Потоковый редактор
sedВернемся теперь к редактору
sedededsed$ sed 'список команда ed' имена_файлов...Читаются строки по одной из входных файлов; команды из списка применяются к каждой строке по одной в указанном порядке и результат редактирования записывается в стандартный выходной поток. Например, можно заменить в любом из указанных файлов
UNIXUNIX (TM)$ sed 's/UNIX/UNIX (TM)/g' имена_файлов...> выходной потокНужно правильно понимать действие команды. Она не изменяет содержимое своих входных файлов, а лишь пишет в стандартный выходной поток; исходные же файлы не изменяются. Вы уже достаточно разобрались в интерпретаторе, чтобы понять, что
$ sed '...' файл > файлне лучшее решение: для замены содержимого файлов нужно задействовать временный файл или другую программу. В дальнейшем мы рассмотрим программу, реализующую задачу записи в существующий файл; обратитесь к команде
overwriteРедактор
sedpseddu -а$ du -a ch4*18 ch4.113 ch4.214 ch4.317 ch4.4 2 ch4.9$Можно использовать
sed*$ du -a ch4.* | sed 's/.*→//'ch4.1ch4.2ch4.3ch4.4ch4.9$В команде замены удаляются все символы (
.*→$ wholr tty1 Sep 29 07:14ron tty3 Sep 29 10:31you tty4 Sep 29 08:36td tty5 Sep 29 08:47$ who | sed 's/ .* / /'lr 07:14ron 10:31you 08:36td 08:47$Команда
sПочти такую же команду
sedgetname$ cat getnamewho am i | sed 's/ .*//'$ getnameyou $Другая команда
sedindРеализовать команду
ind$ sed 's/^/→/' $*В этой версии символ табуляции вставляется даже в пустую строку, что не требуется. В лучшей версии используется возможность
sedsed '/./s/^/→/' $*Шаблон
/./ssedЕсть еще один способ определения команды
ind'!'sed '/^$/!s/^/→/' $*шаблон
/^$//^$/!Как уже отмечалось,
sededsed
