Готовый перевод sed & awk / sed & awk: 5.1 О синтаксисе команд sed

Внимание! Этот перевод, возможно, ещё не готов, так как модераторы установили для него статус «перевод редактируется»

До рассмотрения отдельных команд, вот несколько моментов для рассмотрения синтаксиса sed команд. Мы покрыли большую часть этого материала в прошлой главе.

Строка адреса опционально в любой команде. Это может быть шаблон, описанный регулярным выражением, окруженным слешами, номер строки или символ адресации в строке. Большинство команд могут понимать два адреса через запятую, которые указывают на диапозон строк. Для этих команд, обычно указывается:

[address]command

Несколько команд принемают только одиночный адрес. Они не могут быть применены к диапозону строк. Шаблон для них:

[line-address]command

Так же запомните, что команды могуть быть объединены фигурными скобками для одного адреса:

address {

command1

command2

command3

}

Первая команда может быть помещена на ту же строку, что и открывающаяся скобка, но закрывающаяся скома должа быть в отдельной строке. Каждая команда может иметь собственный адрес и разрешены множественные уровни. Также, можно заменить отступ команд внутри скобок, пробелы и табуляции в начале строки разрешены.

Когда sed не может понять команду, он печатает сообщение "Команда искажена". Она маленькая синтаксическая ошибка это пробел после команды. Это не позволительно; конец команды должен быть в конце строки.

Доказательство этого ограничения описано как "недокументированная" особенность: множественные команды sed могуть помещены в одну строки если каждая из них отделена через точку с запятой.[1] Синтаксис следующего примера правильный:

[1] Удивительно, использование точки с запятой в качестве разделителя команд не задокументированно в POSIX стандарте.

n;d

Как правило, пробел после команды n вызывает синтаксическую ошибку. Помещение пробела перед командой d нормально.

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

Внимание! Этот перевод, возможно, ещё не готов.
Его статус: перевод редактируется

Переведено на Нотабеноиде
http://notabenoid.org/book/32181/135455

Переводчики: r0mk

Настройки

Готово:

100.00% КП = 1.0