
- •И.Н.Акуленок
- •Утверждено советом университета
- •Введение
- •Глава 1. Текстовые редакторы
- •1.1. Редактор ed
- •1.1.1. Команды, не использующие адресации строк
- •1.1.2. Команды, использующие один адрес
- •1.1.3. Команды, использующие два адреса
- •1.1.4. Нумерация строк
- •1.1.5. Примеры использования команд
- •1.2. Редактор VI и ex
- •1.2.1. Редактирование нескольких файлов
- •1.2.2. Вставка текста из одного файла в другой
- •1.3. Потоковый редактор sed
- •1.4. Контрольные вопросы
- •Глава 2. Командные процессоры ос unix
- •2.1. Типы командных процессоров
- •2.2. Идентификация и смена оболочки
- •2.3. Запуск shell и стартовых shell–файлов
- •2.4. Установка переменных среды
- •2.5. Псевдонимы команд
- •2.6. Выполнение .Profile после его изменения
- •2.7. Контрольные вопросы
- •Глава 3. Интерпретатор shell
- •3.1. Shell–переменные
- •3.1.1. Задание значений переменных и их отмена
- •3.1.2. Экспорт переменных
- •3.2. Специальные символы
- •3.2.1. Использование двойных кавычек и апострофа
- •3.2.2. Обратные апострофы
- •3.2.3. Обратная наклонная черта
- •3.3. Позиционные переменные
- •3.4. Код завершения процесса
- •3.5. Конвейеры и списки
- •3.6. Композиции команд
- •3.5.1. Порожденный shell – оператор круглые скобки ( )
- •3.5.2. Оператор списка – фигурные скобки {}
- •3.6. Контрольные вопросы
- •Глава 4. Программные структуры
- •4.1. Команда test
- •4.1.1. Условия проверки файлов
- •4.1.2. Условия проверки строк
- •4.1.3. Условия сравнения целых чисел
- •4.1.4. Сложные условия
- •4.2. Команда expr
- •4.3. Команда read
- •4.4.Условный оператор if
- •4.5. Оператор цикла for
- •4.6. Операторы цикла while и until
- •4.7. Оператор вызова case
- •4.8. Функции в shell
- •4.9. Контрольные вопросы
- •5. Создание сценария командного процессора
- •5.1. Пример простейшего сценария
- •5.2. Основные этапы разработки сценария
- •5.3. Отладка командных процедур
- •5.4. Выполнение shell–программ
- •5.5. Создание новых команд
- •5.6. Контрольные вопросы
- •Список литературы
- •Оглавление
- •Акуленок Ирина Николаевна
1.1.5. Примеры использования команд
Наиболее удобным вариантом вывода текущей строки является точка. Для вывода диапазона строк можно комбинировать точку с другими адресами.
p (.pили.,.pили.,.или.илиp)–осуществляется печать текущей строки.
.,$p– выведет на экран все строки, начиная от текущей до последней.
.,5p– вывод на экран всех строк, начиная от текущей до строки 5 (предполагается, что вы находитесь выше пятой строки).
1p– печать первой строки.
1,$p– печать всех строк.
–1p (.–pили.–1или–1или–pили–)– выведет на экран строку перед текущей строкой и (обычно) сбрасывает значение точки в адрес выведенной строки.
2,3w name_file– записывает 2 строки в файл на диске, Если указанный файл не существует, то он будет создаваться. Если же он уже существует, то будет записан заново, поэтому будьте осторожны.
3,6w– записывает в текущий файл на диске строки с 3–й по 6–ю.
10d– удаление 10 строки.
+10d– удаление 10 строки после текущей.
d– удаление текущей строки.
10,15d– удаление строк с 10–й по 15–ю.
20,/new/d– удаление строк, начиная с 20–й вплоть до той, которая содержит образ «new» включительно.
3i– вставляет текст перед строкой 3.
3,4с– изменяет строки 3 и 4 на новый введенный после команды текст.
m50– размещает текущую строку после строки 50–й.
m$– перемещает текущую строку в конец.
m0– перемещает текущую строку в начало.
m+ (.,.m.+1)– меняет местами текущую строку со следующей.
1,2m4– перемещает строки 1–ю и 2–ю, вставляя их после строки 4.
1,1m6 (1m6)–перемещает первую строку, вставляя ее после строки 6.
30m31– ставит строку 30–ю после строки 31–й.
/hi/,50m0– пересылает группу строк, начиная с той, в которой встречается набор символов «hi» , и кончая строкой 50, в позицию после строки 0.
t.–дублирует текущую строку.
t$– копирует текущую строку в конец буфера.
1,$t$–дублирует весь буфер в конец.
27t30– передает строку 27 вслед за строкой 30, не удаляя 27–ю строку.
s/^/ /p– заменит символ начала строки на пять пробелов.
s/$/+++++/p– добавит пять плюсов к концу строки.
s/sport//p– удаляет из строки последовательность символов «sport» и выведет на экран исправленную строку.
20s/URIX/UNIX/– будет исправлена опечатка в 20–й строке.
1,$s/URIX/UNIX/– будет исправлена опечатка, если вы несколько раз ошиблись в тексте.
s/one/two/gp– сделает множественную замену в одной строке.
1,$s/one/two/– сделает замену во всех строках, но только первого экземпляра в каждой строке.
1,$s/one/two/g– редактор произведет множественные замены в горизонтальном и вертикальном направлениях.
s/sun/moon/3– если в текущей строке содержится 4 вхождения образ «sun», то команда заменит третье вхождение «sun» на «moon». Последнее число может принимать значения в диапазоне от 1 до 512 (по умолчанию это 1, то есть заменяется первое вхождение).
s/g// – удалит лишнюю буквуgв словеproggramтекущей строки.
g/help/p– напечатает все строки, содержащие последовательность символов «help».
50,100g/alpha/p– напечатает все строки, содержащие слово «alpha» в пределах от строки 50 до строки 100.
/beta/,/alpha/g/zet/d– удаляются все строки, включающие текстовый образ «zet», начиная с 1–й строки, содержащей образ «beta», до 1–й строки, в которую входит образ «alpha». Строки, содержащие «zet» и расположенные вне этого диапазона, не удаляются.
v/–/s/330/340/p– во всех строках, не содержащих дефис, число 330 заменяется на 340.