АнглийскийФранцузскийИспанский

Запустить серверы | Ubuntu > | Fedora > |


Значок OnWorks

edposix - Интернет в облаке

Запустите edposix в бесплатном хостинг-провайдере OnWorks через Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS

Это команда edposix, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.

ПРОГРАММА:

ИМЯ


ed - редактировать текст

СИНТАКСИС


ed [−p строка] [−с] [файл]

ОПИСАНИЕ


ed Утилита - это строчно-ориентированный текстовый редактор, использующий два режима: команду Режим и вход
Режим. В командном режиме входные символы должны интерпретироваться как команды, а во входных
в режиме они интерпретируются как текст. См. Раздел РАСШИРЕННОЕ ОПИСАНИЕ.

Если операнд '-', результаты не указаны.

ОПЦИИ


ed утилита должна соответствовать тому Базовые определения POSIX.1-2008, Раздел 12.2,
утилита Синтаксис Инструкции, за исключением неуказанного использования '-'.

Поддерживаются следующие варианты:

−p строка использование строка в качестве строки приглашения в командном режиме. По умолчанию должно быть
нет строки подсказки.

−с Подавить запись количества байтов с помощью e, E, rи w команды и '!'
подскажите после!команду.

ОПЕРАНДЫ


Поддерживается следующий операнд:

файл Если же линия индикатора файл приведен аргумент, ed имитирует e команда для файла с именем
по имени пути, файл, прежде чем принимать команды со стандартного ввода.

STDIN


Стандартный ввод должен быть текстовым файлом, состоящим из команд, как описано в
РАСШИРЕННОЕ ОПИСАНИЕ.

ВХОД FILES


Входные файлы должны быть текстовыми.

ОКРУЖАЮЩАЯ СРЕДА ПЕРЕМЕННЫЕ


Следующие переменные среды должны влиять на выполнение ed:

Главная Определите путь к домашнему каталогу пользователя.

ДЛИННЫЙ Задайте значение по умолчанию для переменных интернационализации, которые не установлены или
нулевой. (См. Том Базовых определений POSIX.1-2008, Раздел 8.2,
Интернационализация Переменные за приоритет интернационализации
переменные, используемые для определения значений категорий локали.)

LC_ALL Если установлено непустое строковое значение, переопределить значения всех остальных
переменные интернационализации.

LC_COLLATE
Определите локаль для поведения диапазонов, классов эквивалентности и мульти-
элементы сопоставления символов в регулярных выражениях.

LC_CTYPE Определите локаль для интерпретации последовательностей байтов текстовых данных
как символы (например, однобайтовые, а не многобайтовые символы в
аргументы и входные файлы) и поведение классов символов в обычных
выражения.

LC_MESSAGES
Определите языковой стандарт, который следует использовать, чтобы повлиять на формат и содержимое
диагностические сообщения, записанные в стандартные сообщения об ошибках, и информационные сообщения, написанные
на стандартный вывод.

NLSPATH Определите расположение каталогов сообщений для обработки LC_MESSAGES.

АСИНХРОННЫЙ СОБЫТИЯ


ed утилита должна выполнять стандартные действия для всех сигналов (см. АСИНХРОННЫЕ СОБЫТИЯ
в разделе Раздел 1.4, утилита Описание По умолчанию) за следующими исключениями:

ПОДПИСАТЬ ed утилита прервет свою текущую деятельность, запишет строку "? \ n" в
стандартный вывод и вернуться в командный режим (см. РАСШИРЕННОЕ ОПИСАНИЕ
раздел).

SIGHUP Если буфер не пуст и изменился с момента последней записи, ed утилита
должен попытаться записать копию буфера в файл. Сначала файл с именем
изд.hup в текущем каталоге будет использоваться; если это не удается, файл с именем
изд.hup в каталоге, названном Главная должна использоваться переменная окружения. В
в любом случае, ed утилита должна выйти без записи файла в текущий
запомнил путь и без возврата в командный режим.

SIGQUIT ed утилита должна игнорировать это событие.

STDOUT


Различные команды редактирования и подсказки (см. −p) записать в стандартный вывод, как
описано в разделе РАСШИРЕННОЕ ОПИСАНИЕ.

STDERR


Стандартная ошибка должна использоваться только для диагностических сообщений.

ВЫВОД FILES


Выходные файлы должны быть текстовыми файлами, форматы которых зависят от команд редактирования.
данный.

РАСПРОСТРАНЕНИЯ ОПИСАНИЕ


ed утилита оперирует копией редактируемого файла; изменения, внесенные в копию
не будет иметь никакого влияния на файл до тех пор, пока w дана команда (запись). Копия текста
называется буфер.

Команды для ed иметь простую и регулярную структуру: ноль, один или два адреса следует
односимвольным команду, возможно, за которым следуют параметры этой команды. Эти
адреса указывают одну или несколько строк в буфере. Каждая команда, требующая адреса
имеет адреса по умолчанию, поэтому адреса очень часто можно не указывать. Если −p вариант
указано, строка приглашения должна быть записана в стандартный вывод перед каждой командой
читать.

Как правило, в строке может отображаться только одна команда. Некоторые команды позволяют тексту быть
Вход. Этот текст помещается в соответствующее место в буфере. Пока ed принимает
текст, говорят, что он находится в вход Режим. В этом режиме никакие команды не распознаются; все
ввод просто собирается. Режим ввода завершается вводом строки, состоящей из двух
персонажи: a ('') с последующим . Эта линия не считается частью
введенного текста.

Стандарт Expressions in ed
ed утилита должна поддерживать базовые регулярные выражения, как описано в Базовых
Том определений POSIX.1-2008, Раздел 9.3, Базовый Стандарт Expressions. Поскольку регулярные
выражения в ed всегда сопоставляются с отдельными строками (исключая завершающие
символов), ни в коем случае не на более крупную часть текста, нет возможности для
регулярное выражение для соответствия .

Нулевой RE должен быть эквивалентен последнему встреченному RE.

Регулярные выражения используются в адресах для указания строк и в некоторых командах (для
Например, s команда replace), чтобы указать части строки, которые необходимо заменить.

Адреса in ed
Обращаясь в ed относится к текущей строке. Как правило, текущая строка - это последняя строка.
под воздействием команды. Номер текущей строки - это адрес текущей строки. Если
буфер редактирования не пуст, начальным значением для текущей строки должна быть последняя строка в
буфер редактирования; в противном случае - ноль.

Адреса строятся следующим образом:

1. В персонаж ('') должен обращаться к текущей строке.

2. В персонаж ('$') должен обращаться к последней строке буфера редактирования.

3. Положительное десятичное число. n обращается к n-я строка буфера редактирования.

4. Группа -x пара символов ("'Икс") должен адресовать строку, отмеченную знаком
имя персонажа x, который должен быть строчной буквой из переносимого набора символов.
Будет ошибкой, если символ не был установлен для обозначения строки или если строка
который был отмечен, в настоящее время отсутствует в буфере редактирования.

5. BRE прилагается символы ('/') должен обращаться к первой строке, найденной
поиск вперед от строки, следующей за текущей, к концу редактирования
буфер и остановка на первой строке, для которой строка, исключая завершающую
соответствует BRE. BRE, состоящий из нулевого BRE, ограниченного парой
символы должны адресовать следующую строку, для которой строка, исключая
прекращение соответствует последнему встреченному BRE. Кроме того, второй
можно не указывать в конце командной строки. В рамках BRE
- пара ("\ /") представляет собой буквальный вместо BRE
разделитель. При необходимости поиск будет продолжен до начала буфера.
и продолжаем до текущей строки включительно, так что весь буфер
искал.

6. BRE прилагается символы (';') должен обращаться к первой найденной строке
путем поиска назад от строки, предшествующей текущей строке, к началу
буфера редактирования и остановка на первой строке, для которой строка, исключая
прекращение соответствует BRE. BRE, состоящий из нулевого BRE, ограниченного
пара символы ("??") должен обращаться к предыдущей строке, для которой
линия, исключая завершающую соответствует последнему встреченному BRE. В
кроме того, второй можно не указывать в конце командной строки.
В рамках BRE - пара ("\?") представляет собой буквальный
вместо разделителя BRE. При необходимости поиск будет завершен.
до конца буфера и продолжайте до текущей строки включительно, поэтому
что ищется весь буфер.

7. А ('+') или персонаж ('-') с последующим десятичным числом должно
адрес текущей строки плюс или минус число. А или персонаж
без десятичного числа должно указывать на текущую строку плюс или минус 1.

Адреса могут сопровождаться нулевым или более адресным смещением, необязательно. -отдельно.
Смещения адресов строятся следующим образом:

* А или символ, за которым следует десятичное число, добавляет или
вычесть, соответственно, указанное количество строк до или от адреса. А
знак> или символ, за которым не следует десятичное число, должен прибавлять или вычитать 1
по адресу или с него.

* Десятичное число добавляет указанное количество строк к адресу.

Если значение промежуточного адреса меньше нуля или больше, это не должно быть ошибкой.
чем последняя строка в буфере редактирования. Это должно быть ошибкой, если окончательное значение адреса будет
быть меньше нуля или больше последней строки в буфере редактирования. Это будет ошибка
если поиск BRE не может найти совпадающую строку.

Команды принимают ноль, один или два адреса. Если больше необходимого количества адресов
предоставляются команде, для которой требуются нулевые адреса, это будет ошибкой. В противном случае,
если команде предоставлено больше, чем требуется количество адресов, адреса
указанное сначала должно быть оценено, а затем отброшено до максимального количества действительных
адреса остаются, для указанной команды.

Адреса отделяются друг от друга знаком ('') или персонаж
(';'). В случае разделитель, текущая строка ('') устанавливается на
первый адрес, и только потом будет вычислен второй адрес. Эта функция может
использоваться для определения начальной линии для прямого и обратного поиска; см. правила 5.
и 6.

Адреса можно не указывать по обе стороны от или разделитель, в котором
случае результирующие пары адресов должны быть следующими:

┌────────────────────────┐
УказанныйРезультирующий
├──────────┼──────────────
│, │ 1, $ │
│, адрес │ 1, адрес │
│addr, │ addr, addr │
│; │. ; $ │
│; адрес │. ; адрес │
│addr; │ адрес; адрес │
└────────────────────────┘
Любой символы между адресами, разделителями адресов или смещениями адресов
игнорируются.

Команды in ed
В следующем списке ed команд, адреса по умолчанию показаны в скобках. В
количество адресов, показанных по умолчанию, должно быть числом, ожидаемым командой. В
круглые скобки не являются частью адреса; они показывают, что данные адреса являются
по умолчанию.

Обычно недопустимо, чтобы в строке отображалось более одной команды. Однако любой
команда (кроме e, E, f, q, Q, r, wи !) может быть дополнен буквой l, n или p; в
в этом случае, кроме l, nи p команды, команда должна быть выполнена, а затем
новая текущая строка должна быть написана, как описано ниже под l, nи p команды.
Когда l, n или p суффикс используется с l, n или p команда, команда должна писать в
стандартный вывод, как описано ниже, но не указано, записывает ли суффикс
текущая строка снова в запрошенном формате или суффикс не имеет никакого эффекта. За
Например, pl команда (база p команда с l суффикс) должен либо писать только
текущую строку или напишите ее дважды - один раз, как указано для p и один раз, как указано для l. Кроме того,
что собой представляет g, G, vи V команды должны принимать команду как параметр.

Каждому компоненту адреса может предшествовать ноль или более символы. Команда
букве может предшествовать ноль или более символы. Если суффиксная буква (l, n или p)
дано, приложение должно гарантировать, что оно следует за командой немедленно.

e, E, f, rи w команды должны принимать необязательный файл параметр, отделенный от
командная буква одним или несколькими символы.

Если изменения были внесены в буфер с момента последнего w команда, написавшая весь
буфер, ed должен предупредить пользователя, если будет сделана попытка уничтожить буфер редактора через
e or q команды. В ed утилита должна записать строку:

"? \ n"

(сопровождаемое пояснительным сообщением, если помощь Режим был включен через H команда) к
стандартный вывод и должен продолжаться в командном режиме с неизменным номером текущей строки.
Если же линия индикатора e or q команда повторяется без промежуточной команды, она вступает в силу.

Если терминал отключился (см. Том Базовых определений POSIX.1-2008, Глава 11,
Общие Терминал Интерфейс, Отключение модема и закрытие терминала устройства), обнаружено:

* Если сопровождается сигналом SIGHUP, ed коммунальное предприятие должно работать, как описано в
Раздел АСИНХРОННЫХ СОБЫТИЙ для сигнала SIGHUP.

* Если не сопровождается сигналом SIGHUP, ed утилита должна действовать, как если бы конец файла
был обнаружен на стандартном входе.

Если на стандартном вводе обнаружен конец файла:

* Если ed утилита находится в режиме ввода, ed должен выйти из режима ввода и вернуться в
командный режим. Не указано, есть ли какие-либо частично введенные строки (то есть вводимый текст
без прекращения ) удаляются из входного текста.

* Если ed утилита находится в командном режиме, она будет действовать так, как если бы q команда была введена.

Если закрывающий разделитель RE или замещающей строки (например, '/') В g, G,
s, v или V команда будет последним символом перед , этот разделитель может быть
опущено, и в этом случае должна быть записана адресная строка. Например, следующие
пары команд эквивалентны:

с / с1 / с2 с / с1 / с2 / п
г / с1 г / с1 / п
? s1 ? s1?

Если введена неверная команда, ed напишем строку:

"? \ n"

(сопровождаемое пояснительным сообщением, если помощь Режим был включен через H команда) к
стандартный вывод и должен продолжаться в командном режиме с неизменным номером текущей строки.

присоединять Command
конспект:
(.) а
<текст>
.

a команда должна прочитать заданный текст и добавить его после адресуемой строки; в
номер текущей строки должен стать адресом последней вставленной строки или, если были
нет, адресная линия. Адрес 0 должен быть действителен для этой команды; это вызовет
добавленный текст, который будет помещен в начало буфера.

Изменить Command
конспект:
(.,.) c
<текст>
.

c команда должна удалить адресованные строки, затем принять вводимый текст, который заменяет эти
линии; текущая строка должна быть установлена ​​на адрес последней строки ввода; или, если есть
не было ни одного, в строке после последней удаленной строки; если удаленные строки были изначально
в конце буфера текущий номер строки должен быть установлен на адрес нового
Последняя линия; если в буфере не осталось строк, текущий номер строки должен быть установлен на ноль.
Адрес 0 должен быть действителен для этой команды; он должен интерпретироваться так, как если бы адрес 1 был
указано.

Удалить Command
конспект:
(.,.) d

d Команда должна удалить адресованные строки из буфера. Адрес линии
после последней удаленной строки становится текущим номером строки; если строки удалены
изначально находились в конце буфера, текущий номер строки должен быть установлен на
адрес новой последней строки; если в буфере не осталось строк, текущий номер строки
должен быть установлен на ноль.

Редактировать Command
конспект:
e [файл]

e команда должна удалить все содержимое буфера, а затем прочитать в файле
названный по имени пути файл. Текущий номер строки должен быть установлен на адрес
последняя строка буфера. Если имя пути не указано, текущее запомненное имя пути, если
любой, должен использоваться (см. f команда). Количество прочитанных байтов должно быть записано в
стандартный вывод, если −с была указана опция в следующем формате:

"% d \ n", <номер of байт читать>

Имя файл следует запомнить для возможного использования в качестве пути по умолчанию в последующих e,
E, rи w команды. Если файл заменяется на '!', остальная часть строки переносится на
быть командной строкой оболочки, вывод которой должен быть прочитан. Такая командная строка оболочки не должна быть
запомнился как текущий файл. Все отметки должны быть сброшены после завершения
успешный e команда. Если буфер был изменен с момента последнего изменения, весь буфер был
написано, пользователь должен быть предупрежден, как описано ранее.

Редактировать Без Контроль Command
конспект:
E [файл]

E команда должна обладать всеми свойствами и ограничениями e команда, кроме этого
редактор не должен проверять, были ли сделаны какие-либо изменения в буфере с тех пор, как
последний w команда.

Имя файла Command
конспект:
f [файл]

If файл дано f команда должна изменить текущий запомненный путь на файл;
независимо от того, было ли имя изменено или нет, он должен записать (возможно, новый) текущий
запомнил путь к стандартному выводу в следующем формате:

"% s \ n", <пути>

Текущий номер строки не изменится.

Глобальный Command
конспект:
(1, $) г /RE/команду список

В g команда, первый шаг должен состоять в том, чтобы пометить каждую строку, для которой строка, исключая
прекращение соответствует заданному RE. Затем, последовательно переходя от
от начала файла до конца файла, данный команду список исполняется за
каждая отмеченная строка, с текущим номером строки, установленным на адрес этой строки. Любая линия
изменен команду список без маркировки. Когда g команда завершена, текущий
номер строки должен иметь значение, присвоенное последней командой в команду список. Если
совпадающих строк не было, текущий номер строки не может быть изменен. Один
команда или первая из списка команд должны появиться в той же строке, что и глобальный
команда. Все строки многострочного списка, кроме последней, должны заканчиваться знаком
предшествующий прекращению ; в a, iи c команды и связанные
ввод разрешен. В '' завершение режима ввода может быть опущено, если это будет
последняя строка команду список. Пустой команду список должен быть эквивалентен p команда.
Использование g, G, v, Vи ! команды в команду список дает неопределенные результаты.
Любой персонаж кроме или может использоваться вместо разграничивать
там. Внутри RE сам ограничитель RE может использоваться как буквальный символ, если он
предшествует .

Интерактивное Глобальный Command
конспект:
(1, $) G /RE/

В G команда, первый шаг должен состоять в том, чтобы пометить каждую строку, для которой строка, исключая
прекращение соответствует заданному RE. Затем для каждой такой строки эта строка будет
быть записанным, текущий номер строки должен быть установлен на адрес этой строки, а любой
команда (кроме одной из a, c, i, g, G, vи V команды) должны быть прочитаны и
выполнен. А действует как пустая команда (не вызывая никаких действий с
текущая строка); ан '&' вызывает повторное выполнение самой последней ненулевой команды
выполняется в текущем вызове G. Обратите внимание, что команды, вводимые как часть
выполнение G Команда может адресовать и влиять на любые строки в буфере. Любая линия
измененные командой, не должны быть помечены. Конечное значение текущего номера строки
должен быть значением, установленным последней успешно выполненной командой. (Обратите внимание, что последний
успешно выполненная команда должна быть G сама команда, если команда не работает или нуль
указана команда.) Если совпадающих строк не было, текущий номер строки не будет
быть изменен. В G команда может быть завершена сигналом SIGINT. Любой персонаж кроме
или может использоваться вместо разграничить RE и
замена. Внутри RE сам разделитель RE может использоваться как буквальный символ, если
ему предшествует .

Справка Command
конспект:
h

h команда должна написать короткое сообщение на стандартный вывод, объясняющее причину
Самый последний ';' уведомление. Текущий номер строки не изменится.

Помощь-режим Command
конспект:
H

H команда должна вызвать ed для входа в режим, в котором справочные сообщения (см. h команда)
должен быть записан в стандартный вывод для всех последующих ';' уведомления. В H команду
поочередно должен включать и выключать этот режим; он изначально выключен. Если режим помощи
включается, H команда также объясняет предыдущий ';' уведомление, если было
один. Текущий номер строки не изменится.

Вставить Command
конспект:
(.)я
<текст>
.

i команда вставляет данный текст перед адресной строкой; текущая строка
устанавливается на последнюю вставленную строку или, если ее не было, на адресную строку. Эта команда
отличается от a команда только при размещении вводимого текста. Адрес 0 должен быть
действительно для этой команды; он должен интерпретироваться так, как если бы был указан адрес 1.

Присоединиться Command
конспект:
(.,. + 1) j

j должна соединять смежные строки, удаляя соответствующие
символы. Если задан ровно один адрес, эта команда ничего не сделает. Если строки
connected, текущий номер строки должен быть установлен на адрес присоединенной строки; в противном случае,
текущий номер строки не изменяется.

Отметьте Command
конспект:
(.) kx

k команда помечает адресную строку именем x, которое приложение должно
sure - это строчная буква из переносимого набора символов. Адрес "'Икс" тогда должен
обратитесь к этой строке; текущий номер строки не изменяется.

Список Command
конспект:
(.,.) л

l команда должна выводить на стандартный вывод адресованные строки в визуально недвусмысленном виде.
форма. Символы, перечисленные в томе Базовых определений POSIX.1-2008, Настольные 5-1,
Побег Последовательности и ассоциированный Действия ('\\', '\ а', '\ b', '\ f', '\р', «\ Т», '\ v') должен
быть записанным как соответствующая escape-последовательность; в '\ n' в этой таблице не применяется.
Непечатаемые символы, отсутствующие в таблице, должны быть записаны как одно трехзначное восьмеричное число.
(с предшествующим символ) для каждого байта в символе (наиболее значимый
сначала байт).

Длинные линии должны быть загнуты, а точка перегиба обозначена значком. предшествует
; длина, при которой происходит складывание, не указана, но должна быть соответствующей
для устройства вывода. Конец каждой строки должен быть отмечен знаком '$'и '$' символы
в тексте пишется с предшествующей . An l команда может быть
добавляется к любой другой команде, кроме e, E, f, q, Q, r, w или !. Текущая строка
number должен быть установлен на адрес последней записанной строки.

Двигаемся Command
конспект:
(.,.) мадрес

m команда должна переместить адресные строки после строки, адресованной адрес.
Адрес 0 действителен для адрес и вызвать перемещение адресованных строк в
начало буфера. Если адрес адрес попадает в диапазон
перемещенные строки. Текущий номер строки должен быть установлен на адрес последней перемещенной строки.

Число Command
конспект:
(.,.) сущ

n команда должна записывать в стандартный вывод адресованные строки, предшествующие каждой строке
номер его строки и ; текущий номер строки должен быть установлен на адрес
последняя строчка написана. В n команда может быть добавлена ​​к любой команде, кроме e, E, f, q, Q,
r, w или !.

печать Command
конспект:
(.,.)п

p команда выводит на стандартный вывод адресованные строки; текущий номер строки
должен быть установлен на адрес последней записанной строки. В p команда может быть добавлена ​​к любому
команда кроме e, E, f, q, Q, r, w или !.

Незамедлительный Command
конспект:
P

P команда должна вызвать ed подсказать ('*') (или строка, Если −p is
указано) для всех последующих команд. В P команда в качестве альтернативы должна включить этот режим
включить и выключить; он должен быть изначально включен, если −p опция указана; в противном случае выкл. В
текущий номер строки не меняется.

Выход Command
конспект:
q

q команда должна вызвать ed выходить. Если буфер изменился с последнего раза,
был записан весь буфер, пользователь должен быть предупрежден, как описано ранее.

Выход Без Контроль Command
конспект:
Q

Q команда должна вызвать ed выйти, не проверяя, были ли внесены изменения в
буфер с последнего w команда.

Уже скоро! Command
конспект:
($) г [файл]

r команда должна читать в файле с именем пути файл и добавьте его после
адресная линия. Если нет файл задан аргумент, запомнившееся в настоящее время имя пути, если оно есть,
должны использоваться (см. e и f команды). Текущее запомненное имя пути не должно быть
изменяется, если нет запомненного имени пути. Адрес 0 действителен для r и должен
вызвать чтение файла в начале буфера. Если чтение прошло успешно, и
−с не указано, количество прочитанных байтов должно быть записано в стандартный вывод в
следующий формат:

"% d \ n", <номер of байт читать>

Текущий номер строки должен быть установлен на адрес последней прочитанной строки. Если файл is
заменяется '!', остальная часть строки должна восприниматься как командная строка оболочки,
вывод следует читать. Такая командная строка оболочки не должна запоминаться как текущая.
путь.

Замена Command
конспект:
(.,.) с /RE/замена/Флаги

s команда должна искать в каждой адресуемой строке вхождение указанного RE и
замените первую или все (неперекрывающиеся) совпадающие строки на замена; увидеть
следующее описание g суффикс. Если замена не удалась на
каждая адресная строка. Любой персонаж кроме или можно использовать вместо
а для разграничения RE и замены. Внутри RE сам ограничитель RE
может использоваться как буквальный символ, если ему предшествует . Текущая строка
должен быть установлен на адрес последней строки, в которой произошла замена.

An ('&') появляется в замена должен быть заменен строкой сопоставления
RE в текущей строке. Особое значение '&' в этом контексте может быть подавлено
предшествуя ему . В более общем плане персонажи '\ n', Где n
- цифра, должна быть заменена текстом с соответствующей обратной ссылкой
выражение. Если соответствующее выражение обратной ссылки не совпадает, тогда
символы '\ n' заменяется пустой строкой. Когда персонаж '%' является единственным
характер в замена, замена используется в самой последней заменяющей команде
будет использоваться как замена в текущей заменяющей команде; если бы не было
предыдущая команда замены, использование '%' таким образом будет ошибкой. В '%'
теряет свое особое значение, если находится в заменяющей строке более чем одного
символ или ему предшествует . Для каждого встречается при сканировании
замена от начала до конца следующий символ теряет свое особое значение
(если есть). Не указано, какое особое значение придается любому символу, кроме
, '&', '%', или цифры.

Строку можно разделить, подставив внутрь. Приложение должно гарантировать это
убегает в замена предшествуя ему . Такой
замена не может быть произведена как часть g or v команду список. Текущий номер строки
должен быть установлен на адрес последней строки, в которой выполняется замена. Если нет
выполняется замена, текущий номер строки не меняется. Если линия разделена,
замена считается выполненной на каждой из новых строк для
цель определения нового текущего номера строки. Замена считается
были выполнены, даже если строка замены идентична строке, которую он
заменяет.

Приложение должно гарантировать, что стоимость Флаги равно нулю или больше:

считать Заменить считать-ое вхождение только RE, найденного в каждой адресной строке.

g Глобально заменять все неперекрывающиеся экземпляры RE, а не просто
первый. Если оба g и считать указаны, результаты не указаны.

l Вывести в стандартный поток вывода последнюю строку, в которой была произведена замена. Линия
должен быть написан в формате, установленном для l команда.

n Вывести в стандартный поток вывода последнюю строку, в которой была произведена замена. Линия
должен быть написан в формате, установленном для n команда.

p Вывести в стандартный поток вывода последнюю строку, в которой была произведена замена. Линия
должен быть написан в формате, установленном для p команда.

Копировать Command
конспект:
(.,.) тадрес

t команда должна быть эквивалентна m команда, за исключением того, что копия адресованного
строки ставятся после адреса адрес (может быть 0); текущий номер строки
должен быть установлен на адрес последней добавленной строки.

расстегивать Command
конспект:
u

u команда должна аннулировать эффект самой последней команды, которая изменила что-либо
в буфере, а именно самый последний a, c, d, g, i, j, m, r, s, t, u, v, G или V команда.
Все изменения, внесенные в буфер g, G, v или V глобальная команда должна быть отменена как
разовая смена; если никакие изменения не были внесены глобальной командой (например, с g/ RE /p) u
команда не имеет никакого эффекта. Текущий номер строки должен быть установлен на значение, которое у него было
непосредственно перед запуском отменяемой команды.

Глобальный Несоответствие Command
конспект:
(1, $) v/RE/команду список

Эта команда должна быть эквивалентна глобальной команде g за исключением того, что строки
во время первого шага должны быть отмечены те линии, для которых линия, исключая завершающую
не соответствует RE.

Интерактивное Глобальный Несоответствие Command
конспект:
(1, $) V/RE/

Эта команда должна быть эквивалентна интерактивной глобальной команде. G за исключением того, что строки
отмеченные на первом этапе, должны быть те, для которых линия, исключая
прекращение не соответствует RE.

Написать Command
конспект:
(1, $) w [файл]

w команда должна записать адресные строки в файл с именем пути файл.
Команда должна создать файл, если он не существует, или заменить содержимое
существующий файл. Текущее запомненное имя пути не может быть изменено, если нет
нет запоминаемого имени пути. Если имя пути не указано, текущее запомненное имя пути, если
любой, должен использоваться (см. e и f команды); текущий номер строки не изменяется.
Если команда выполнена успешно, количество записанных байтов должно быть записано в стандартное
вывод, если −с была указана опция в следующем формате:

"% d \ n", <номер of байт письменный>

If файл начинается с '!', остальная часть строки будет считаться командной строкой оболочки
чей стандартный ввод должен быть адресными строками. Такая командная строка оболочки не должна быть
запоминается как текущий путь. Это использование команды записи с '!' не будет
считается `` последним w команда, которая записала весь буфер '', как описано ранее;
таким образом, это само по себе не предотвратит предупреждения пользователя, если будет сделана попытка
уничтожить буфер редактора через e or q команды.

линия Число Command
конспект:
($) =

Номер адресуемой строки должен быть записан в стандартный вывод следующим образом:
Формат:

"% d \ n", <линия номер>

Эта команда не должна изменять текущий номер строки.

Оболочка Побег Command
конспект:
!команду

Остаток строки после '!' должен быть отправлен командному интерпретатору для
интерпретируется как командная строка оболочки. В тексте этой командной строки оболочки
неэкранированный персонаж '%' заменяется на запомненный путь; если '!' появляется
в качестве первого символа команды он заменяется текстом предыдущего
команда оболочки выполняется через '!'. Таким образом, "!!" повторю предыдущее!команду. Если есть
замена '%' or '!' выполняются, измененная строка записывается в
стандартный вывод до команду выполняется. В ! команда должна написать:

"! \ n"

к стандартному выходу после завершения, если −с опция указана. Текущая строка
номер не меняется.

Значение Null Command
конспект:
(. + 1)

Только адрес в строке должен вызывать запись адресной строки. А в одиночестве
должен быть эквивалентен «+ 1p». Текущий номер строки должен быть установлен на адрес
письменная строка.

ВЫХОД STATUS


Должны быть возвращены следующие значения выхода:

0 Успешное завершение без файловых или командных ошибок.

> 0 Произошла ошибка.

ПОСЛЕДСТВИЯ OF ОШИБКИ


Когда обнаруживается ошибка во входном скрипте или когда обнаруживается ошибка,
следствие наличия (отсутствия) данных в файле или внешнего условия, такого как
ошибка чтения или записи:

* Если стандартный ввод - это файл оконечного устройства, все вводимые данные должны быть сброшены, а новый
команда прочитана.

* Если стандартный ввод - это обычный файл, ed заканчиваться ненулевым выходом
Статус.

после разделах Он информативный.

ЗАЯВЛЕНИЕ ИСПОЛЬЗОВАНИЕ


Из-за чрезвычайно краткого характера сообщений об ошибках по умолчанию разумный сценарий
писатель начинает ed команды ввода с H команда, так что если какие-либо ошибки происходят в
есть хоть какой-то ключ к разгадке причины.

В более ранних версиях этого стандарта устаревший - был описан вариант. Это не
больше указан. Приложения должны использовать −с вариант. С использованием - как файл операнд сейчас
дает неопределенные результаты. Это позволяет реализациям продолжать поддерживать
прежнее требуемое поведение.

ПРИМЕРЫ


Нет.

ОБОСНОВАНИЕ


Первоначальное описание этой утилиты было адаптировано из SVID. Он содержит некоторые
функции, отсутствующие в Версии 7 или системах, производных от BSD. Некоторые различия между
POSIX и BSD ed Утилиты включают, но не ограничиваются:

* BSD - опция не подавляет '!' подсказка после ! команда.

* BSD не поддерживает особое значение '%' и '!' персонажей в !
команда.

* BSD не поддерживает адреса ';' и ''.

* BSD позволяет использовать пары команда / суффикс pp, llи т. д., которые не указаны в этом
том POSIX.1‐2008.

* BSD не поддерживает '!' характерная часть e, r или w команды.

* Неудачный g команда в BSD устанавливает номер строки для последней искомой строки, если есть
нет совпадений.

* BSD не устанавливает по умолчанию команду список до p команда.

* BSD не поддерживает G, h, H, n или V команды.

* В BSD, если нет вставленного текста, команда вставки изменяет текущую строку на
указанная линия -1; то есть строка перед указанной строкой.

* В BSD присоединиться команда только с одним адресом изменяет текущую строку на эту
адрес.

* BSD не поддерживает P команда; более того, в BSD это синоним p
команда.

* BSD не поддерживает отменить команд j, m, r, s или t.

* Версия 7 ed команду W, и BSD ed команды W, wqи z не присутствуют в
этот том POSIX.1-2008.

−с была добавлена ​​опция, позволяющая использовать удаленные - вариант в манере
совместим с Руководством по синтаксису служебных программ.

В ранних предложениях было ограничение {ED_FILE_MAX}, описывающее историческое
ограничения некоторых ed утилиты для обработки больших файлов; некоторые из них имели
проблемы с файлами размером более 100000 байт. Именно это ограничение побудило многих
желание включить раскол в этом томе POSIX.1-2008. Поскольку этот предел был
удален, этот том POSIX.1-2008 требует, чтобы реализации документировали размер файла
ограничения, установленные ed в документе о соответствии. Лимит {ED_LINE_MAX} также был
удаленный; поэтому для линий ввода и вывода используется глобальный предел {LINE_MAX}.

Манера, в которой l команда пишет непечатаемые символы была изменена, чтобы избежать
исторический метод backspace-overstrike. На терминалах видеодисплея избыточный удар
неоднозначно, потому что большинство терминалов просто заменяют зачеркнутые символы, в результате чего l формат
бесполезно по прямому назначению однозначного понимания содержания
линия. Исторический -эскейпы также были неоднозначными. (Струна "а \ 0011" может
представляют строку, содержащую эти шесть символов, или строку, содержащую три символа
'а', байт с двоичным значением 1 и 1.) В требуемом здесь формате
в строке записывается как "\\" так что вывод действительно однозначный. В
метод обозначения концов линий был заимствован из ex редактор и требуется для любого
строка, оканчивающаяся на символы; в '$' размещается на всех линиях, так что настоящий '$' at
конец строки не может быть неверно истолкован.

Более ранние версии этого стандарта допускали реализации с байтами, отличными от восьми.
бит, но это было изменено в этой версии.

Описание того, как пишется NUL, было удалено. Символ NUL не может быть в тексте
файлы, и этот том POSIX.1-2008 не должен диктовать поведение в случае
неопределенный, ошибочный ввод.

В отличие от некоторых других утилит редактирования, имена файлов, принимаемые E, e, Rи r
команды - это не шаблоны.

В ранних предложениях говорилось, что −p опция работала только тогда, когда был привязан стандартный ввод
с оконечным устройством. Это было изменено, чтобы соответствовать историческим реализациям,
тем самым позволяя приложениям вставать между пользователем и ed утилита.

Форма заменяющей команды, в которой используется n суффикс был ограничен в некоторых исторических
документация (где это было неправильно описано как `` обратная ссылка ''). Этот предел
был опущен, поскольку нет причин, по которым редактор обрабатывает строки {LINE_MAX}
длина должна иметь это ограничение. Команда s / x / X / 2047 должен быть в состоянии заменить
2047-е появление 'X' на линии.

Использование команд печати с суффиксами печати (например, pn, lpи т. д.)
не указано, потому что системы на основе BSD это позволяют, а System V - нет.

Некоторые системы на основе BSD завершают работу сразу после получения сообщения о конце файла, если все строки в
файл был удален. Поскольку этот том POSIX.1-2008 относится к q командовать в
в данном случае такое поведение недопустимо.

Некоторые исторические реализации возвращали нулевой статус выхода, даже если ошибки команды имели
произошел; это не разрешено данным томом POSIX.1-2008.

Некоторые исторические реализации содержали ошибку, которая позволяла одному быть
введен в режиме ввода как . Это не разрешено ed
потому что нет описания экранирования любого из символов в режиме ввода;
символы вводятся в буфер точно так же, как набраны. Типичный метод
вход в сингл должен был предшествовать ему другим символом, а затем использовать
заменить команду, чтобы удалить этот символ.

Это сложно в некоторых режимах некоторых версий терминала исторической операционной системы.
драйверы, чтобы различать состояние конца файла и отключение терминала.
POSIX.1-2008 не требует реализации, чтобы различать две ситуации,
что позволяет исторические реализации ed утилита на исторических платформах для
соответствовать. Реализациям рекомендуется различать эти два, если это возможно, и
примите соответствующие меры при отключении терминала.

Исторически сложилось так, ed принял нулевой адрес для a и r команды для вставки текста
в начале буфера редактирования. Когда буфер был пуст, команда .= вернул ноль.
POSIX.1-2008 требует соответствия исторической практике.

Для согласования с a и r команд и улучшенной пользовательской функциональности, i и c
команды также должны принимать адрес 0, в этом случае 0i рассматривается как 1i и аналогично
для c команда.

Все следующие допустимые адреса:

+++ Три строки после текущей строки.

/описания/ - Одна строка до следующего появления шаблона.

−2 Две строки до текущей строки.

3 −−−− 2 Первая строка (обратите внимание на промежуточный отрицательный адрес).

1 2 3 Шестая строка.

Любое количество адресов может быть предоставлено командам, принимающим адреса; Например,
«1,2,3,4,5p» печатает строки 4 и 5, потому что два - это наибольшее допустимое количество адресов
приняты Распечатать команда. Это в сочетании с разделитель
позволяет пользователям создавать команды на основе упорядоченных шаблонов в файле. Например,
команду "3; / foo /; + 2p" отобразит первую строку после строки 3, которая содержит шаблон
Foo, плюс следующие две строки. Обратите внимание, что адрес «3;» еще должны быть оценены перед
отбрасывается, потому что источник поиска для "/ foo /" команда зависит от этого.

Исторически сложилось так, ed запрещенные адресные цепочки, как обсуждалось выше, состоящие исключительно из
или разделители; Например, ",,," or ";;;" считались ошибкой.
Для единообразия указания адреса это ограничение снято. Следующая таблица
перечисляет некоторые из возможных адресных форм:

┌────────┬───────┬───────┬──────────────────────── ─────────────┐
АдресАдрес1Адрес2СтатусКОММЕНТАРИЙ
├────────┼───────┼───────┼──────────────────────── ─────────────┤
│7, │ 7 │ 7 │ Исторический │ │
│7,5, │ 5 │ 5 │ Исторический │ │
│7,5,9 │ 5 │ 9 │ Исторический │ │
│7,9 │ 7 │ 9 │ Исторический │ │
│7, + │ 7 │ 8 │ Исторический │ │
│, │ 1 │ $ │ Исторический │ │
│, 7 │ 1 │ 7 │ Расширение │ │
│ ,, │ $ │ $ │ Расширение │ │
│ ,; │ $ │ $ │ Расширение │ │
│7; │ 7 │ 7 │ Исторический │ │
│7; 5; │ 5 │ 5 │ Исторический │ │
│7; 5; 9 │ 5 │ 9 │ Исторический │ │
│7; 5,9 │ 5 │ 9 │ Исторический │ │
│7; $; 4 │ $ │ 4 │ Исторический │ Действительный, но ошибочный. │
│7; 9 │ 7 │ 9 │ Исторический │ │
│7; + │ 7 │ 8 │ Исторический │ │
│; │. │ $ │ Исторический │ │
│; 7 │. │ 7 │ Расширение │ │
│ ;; │ $ │ $ │ Расширение │ │
│ ;, │ $ │ $ │ Расширение │ │
└────────┴───────┴───────┴──────────────────────── ─────────────┘
Исторически сложилось так, ed принял '^' символ как адрес, и в этом случае он был идентичен
к персонаж. POSIX.1-2008 не требует и не запрещает такое поведение.

БУДУЩЕЕ НАПРАВЛЕНИЯ


Нет.

Используйте edposix онлайн с помощью сервисов onworks.net


Ad


Ad