NEWFORM(1) NEWFORM(1)
НАЗВАНИЕ
newform - изменение формата текстового файла
СИНТАКСИС
newform [-s] [-iспециф_табул] [-oспециф_табул] [-b[число_символов]]
[-e[число_символов]] [-p[число_символов]] [-a[число_символов]]
[-f] [-cсимвол] [-l[длина]] [файл ...]
ОПИСАНИЕ
Команда newform читает строки из указанных файлов или,
если файлы не заданы, со стандартного ввода, выполняет
переформатирование этих строк и помещает результат на
стандартный вывод. Переформатирование происходит в со-
ответствии с заданными в командной строке опциями.
Все опции, кроме -s, могут появляться в командной стро-
ке в любом порядке, повторяться, между ними могут вкли-
ниваться имена файлов. Обработка опций осуществляется в
том порядке, в каком они заданы. Это означает, напри-
мер, что результаты форматирования для последователь-
ности опций -e15 -l60 отличны от результатов для после-
довательности -l60 -e15. Опции применяются ко всем фай-
лам, имена которых присутствуют в командной строке.
-s Начальные символы каждой строки, вплоть до первого
символа табуляции, отсекаются и в количестве, не
превышающем 8, помещаются в конец строки. Если от-
сечено более 8 символов (не считая табуляции), то
8-й символ заменяется на *, а последующие символы
отбрасываются. Первый символ табуляции отбрасыва-
ется всегда.
Если эта опция применяется к файлу, в котором хотя
бы одна строка не содержит символа табуляции, то
выдается сообщение об ошибке и происходит выход из
программы. Программа хранит отсеченные символы,
пока к данной строке не будут применены все опции.
После этого хранимые символы присоединяются к кон-
цу обработанной строки.
Рассмотрим в качестве примера файл f1, каждая
строка которого начинается с последовательности
цифр, а далее следует один или несколько символов
табуляции вперемежку с текстом. Пусть требуется
преобразовать его таким образом, чтобы каждая
строка начиналась с текста, все символы табуляции
кроме первого были заменены пробелами, длина стро-
ки была бы сначала доведена до 72 символов (путем
отбрасывания лишних символов или дополнения конца
строки пробелами), а начиная с 73-й позиции была
размещена последовательность цифр, с которой начи-
нается исходная строка. Это достигается выполнени-
ем команды:
newform -s -i -l -a -e f1
-iспециф_табул
Спецификация табуляции при вводе: символы табуля-
ции заменяются на пробелы в соответствии с задан-
ной спецификацией, которая воспринимается в любой
из форм, описанных в tabs(1). Кроме того, специф_-
табул может быть задана как --, и тогда предпола-
гается, что собственно спецификация табуляции на-
ходится в первой строке, считанной со стандартного
ввода [см. fspec(4)]. Если специф_табул не задана,
то принимается, что она равна -8 (значение по
умолчанию). При специф_табул, равной -0, предпола-
гается отсутствие в тексте символов табуляции; в
случае их обнаружения они обрабатываются как при
специф_табул, равной -1.
-oспециф_табул
Спецификация табуляции при выводе: пробелы заменя-
ются символами табуляции в соответствии с заданной
спецификацией, аналогичной по форме -iспециф_та-
бул. Если специф_табул не задана, то принимается,
что она равна -8. При специф_табул, равной -0,
пробелы при выводе символами табуляции не заменя-
ются.
-b[число_символов]
Отсечь от начала строки указанное число_символов в
случае, если длина строки превышает номинальную
(см. -l). По умолчанию (когда число_символов не
указано) начальные символы отсекаются в количест-
ве, необходимом для получения строки номинальной
длины. Опцию -b можно использовать, например, для
удаления порядковых номеров строк из программы на
КОБОЛе (файл f2), что делается следующим образом:
newform -l1 -b7 f2
Использование опции -l1 обусловлено необходимостью
установки номинальной длины, меньшей чем длина лю-
бой существующей строки, с тем чтобы активировать
опцию -b.
-e[число_символов]
Аналогично -b с тем отличием, что символы отсека-
ются от конца строки.
-p[число_символов]
Добавить в начало строк с длиной, меньшей номи-
нальной, указанное число одинаковых символов (см.
-c). Если число_символов не указано, строки допол-
няются до номинальной длины.
-a[число_символов]
Аналогично -p с тем отличием, что пополняется ко-
нец строки.
-f Поместить строку в формате спецификации табуляции
на стандартный вывод до всех других строк. Выводи-
мая спецификация задается последней опцией -o. Ес-
ли опция -o не была указана ни разу, помещается
принимаемая по умолчанию спецификация -8.
-cсимвол
Заменить символ, которым пополняется начало/конец
строки, на указанный символ. По умолчанию в ка-
честве заполнителя используется пробел.
-l[длина]
Установить номинальную длину строки. Если длина
опущена, то номинальная длина строки принимается
равной 72. Если опция -l не задана вовсе, то номи-
нальная длина принимается равной 80. Следует заме-
тить, что каждый символ табуляции и забоя рассмат-
ривается как единичный символ (для замены символов
табуляции пробелами необходимо воспользоваться оп-
цией -i).
СМ. ТАКЖЕ
csplit(1), tabs(1).
fspec(4) в Справочнике программиста.
КОДЫ ЗАВЕРШЕНИЯ
0 Нормальное завершение.
1 Зафиксированы ошибки.
ДИАГНОСТИКА
Появление любой диагностики означает фатальную ошибку.
usage: ...
Команда вызвана с недопустимой опцией.
not -s format
Обнаружена строка, не содержащая символа табуля-
ции.
can't open file
Не открывается файл.
internal line too long
Строка, будучи расширена путем замены символов та-
буляции пробелами или иным способом, не помести-
лась во внутренний рабочий буфер из 512 байт.
tabspec in error
Спецификация табуляции имеет недопустимый формат
или позиции табуляции заданы не в порядке возрас-
тания.
tabspec indirection illegal
Спецификация табуляции, считанная из файла (либо
со стандартного ввода), не может содержать ссылку
на спецификацию в другом файле.
СЮРПРИЗЫ
Командой newform обычно отслеживают только физические
символы; однако в случае опций -i и -o отслеживаются
также символы забоя, чтобы символы табуляции отмечали
надлежащие логические колонки.
Командой newform не выдается приглашение пользователю,
если спецификация табуляции должна считываться со стан-
дартного ввода (при использовании опций -i-- или -o--).
Если используется опция -f, а из опций -o последней бы-
ла указана -o-- и ей предшествовала какая-либо из опций
-i-- или -o--, то формат строки спецификации табуляции
будет некорректным.
|