Готовый перевод 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
Настройки
Готово:
