|
НАЗВАНИЕ
bfs - Просматривает большие файлы.
СИНТАКСИС
bfs [-] name
ОПИСАНИЕ
Команда bfs сходна с командой ed(1) за исключением того, что
она доступна только для чтения и обрабатывает гораздо большие
файлы. Файлы могут быть до 1024К байт и 32К строк и иметь до
255 символов на строку. Команда bfs обычно более эффективна,
чем команда ed для сканирования файла, т.к. файл не копируется в буфер. Она наиболее полезна для идентификации секций
большого файла, где команда csplit(1) может быть использована
для разделения этого файла на куски, удобные для редактирования.
Обычно, размер просматриваемого файла печатается, как размер любого файла, записанного командой W. Необязательный параметр тире (-) подавляет печать размеров. Ввод вызывается с помощью звездочки (*), когда набираются "P" и RETURN. "P" действует как переключатель, так, что запрос может быть выключен вводом других "P" и RETURN. Заметьте, что сообщения выдаются как реакция на ошибки только, если запрос включен.
Все адресные выражения,описанные по команде ed, обеспечиваются. Кроме того,регулярные выражения могут быть заключены между двумя символами, отличными от стандартных косой черты (/) и (?): знак больше(>) указывает на поиск, спускающийся вниз без циклического возврата, а знак меньше (< ) указывает на поиск, поднимающийся вверх без циклического возврата. Заметьте, что круглые скобки и фигурные скобки являются специальными и от них необходимо избавиться с помощью символа обратная косая черта (\). Так как команда bfs использует различные подпрограммы с регулярными выражениями сравнения из ed ,область действия регулярных выражений может быть гораздо шире Различия между командами ed и bfs перечислены ниже:
Существует также незначительное отличие в именах меток: могут быть использованы только буквы от "a" до "z" и все 26 меток запоминаются.
e,g,v,k,p,q,w,=,! и нулевые команды работают как описано в команде ed, исключая то, что e не запоминает имена файлов, а g и v , когда не задан аргумент, возвращают на строку, расположенную за строкой, на которой вы находились. Команды такие, как ---, +++-,+++=,-12 и +4p допускаются. Заметьте, что команды 1,10p и 1,10 обе будут распечатывать первые 10 строк. Только команда f печатает имя файла, который просматривался; имя файла не запоминается.Команда w не зависит от отклонения, округления, уплотнения вывода (см команды xo,xt и xc ниже).Допустимы следующие дополнительные команды:
Команда xb разрешена только, если она читается не с терминала. Если она читается из канала, то возможен переход только вниз.
1,%5p 1,%5 %6печатаются первые 100 строк.
g/%5/pищет символы 100 и печатает каждую строку, содержащую совпадение.Для того, чтобы избавиться от специального значения % , перед ним должен быть знак \. Например,
g/".*\%[cds]/pможет использоваться для того,чтобы сопоставить строки и составить список строк, содержащих символы printf, десятичные целые или строки.
Другая особенность команды xv состоит в том, что первая строка вывода из команды системы XENIX может храниться в переменной .
Единственным требованием является требование того, чтобы первым символом value был a!. Например,
xv5!cat junk !rm junk !echo"%5" xv6!expr%6+1устанавливает текущую строку в переменной 5, печатает ее и увеличивает переменную 6 на единицу. Для того, чтобы избавиться от специального значения ! в качестве первого символа value, поставьте перед ним \. Например,
xv7\!dateпомещает значение !date в переменную 7.
xv55
|