1. Лекция 3
1 октября 2018 г.
Заметили ошибку или есть предложение? Напишите на почту: romansdidnotcrucify@gmail.com
ACHTUNG! WORK IN PROGRESS!
Данная страница ещё не закончена и находится в процессе дополнения и переработки. Почитать уже можно, но не забудьте потом заглянуть, когда будет полная версия.
Содержание
у нас сегодня очередной бесчеловечный эксперимент, на этот раз - из cерии изучи C++ за 24 часа
сегодня должен быть разговор про обработку плоских текстов
мы попытаемся упихнуть изрядную часть 5 лекций в одну
с чего вдруг обработка текстов приобретает такое первостепенное значение?
виной всему тот факт, что линукс-система происходит и наследуется от идеологии Unix, в которой один из главных принципов - если информацию можно представить в текстовом виде, лучше представить её в текстовом виде
командная строка
представление о файлах в системе
сами команды - тоже текст, поэтому последовательности команд можно генерировать
первое, где может понадобиться обработка текстов - непосредственно в командной строке
второе - в текстовом виде хранится большинство конфигурационных файлов
не только профиль системы, но и настроечные файлы большинства пользовательских приложений являются текстовыми
информация о системе, которую вы можете получить, тоже представляется текстом
задача актуальная особенно тогда, когда никакого одного действия для решения задачи нет
обычно ещё при отображении плоского текста используется моноширинный шрифт
Если наша задача - не просто написать текст, а обрабатывать его, поиска с заменой, имеющегося в стандартных текстовых редакторах, явно недостаточно
Обработка сложных текстов даже с помощью инструментов, созданных для этого, иногда оказывается неудобной (программирование)
vim
его главная особенность - работа в трёх различных режимах
режим редактирования текста - не главный
основные команды - команды обработки текста
Режимы: 1. командный 2. вставки 3. командной строки
командный - команды перемещения по тексту
команды перемещения можно домножать
выйти - :q!
важный принцип команд в виме - их аббревиативность
в редакторе вим есть команды редактирования, которые привязаны к командам перемещения
гнездовые команды
очень сильно настраиваемы на разные языки программирования
единственная и главная просьба - при использовании нового инструмента не пытайтесь сделать просто старайтесь делать эффективно
как этому всему учиться - vimtutor
одно из главных свойств вима - регулярные выражения для поиска
регулярные выражения - механизм сопоставления текста шаблону
атомарные регулярные выражения в виме
регулярные выражения можно комбинировать с точкой привязки
в регулярных выражениях есть повторители
повторитель может применяться к группе
движок регулярных выражений ищет совпадения в строке
grep тоже работает с регулярными выражениями
sed - stream edit
последний принцип регулярных выражений - самый левый - самый длинный
жадный повторитель
языки обработки текстов типа awk или Perl
awk - C-подобный
если мало awk - пишите просто на нормальном языке программирования
регулярки - не универсальная штука
синтаксис регулярных выражений отличается от приложения к приложению
perl-регулярные выражения (и это опасно)