Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (OSF1-V5.1-alpha)
Apropos / Subsearch:
optional field

bfs(1)								       bfs(1)


  bfs -	Scans files


  bfs [-] file...

  The bfs command is a read-only line editor typically used to scan files.


  -   Suppresses the display of	file sizes.  Normally, bfs displays the	size
      in bytes of the file being scanned.


  The bfs command is similar to	the ed command,	but has	some additional	sub-
  commands and the ability to process much larger files.

  Input	files can be up	to 32K lines long, with	up to 512 characters per
  line.	The command bfs	is usually more	efficient than ed for scanning a file
  because the file is not copied to a buffer.  It is useful for	identifying
  appropriate lines at which to	use the	csplit command when dividing a large
  file into more manageable pieces for editing.

  If you enter the P subcommand, bfs prompts you with *	(asterisk).  You can
  turn off prompting by	entering a P again. The	command	bfs displays error
  messages only	when prompting is turned on.

  Pattern Searches

  The bfs command supports all the address expressions described in ed(1).
  Regular expressions are covered in detail in grep(1).	 In addition, you can
  instruct bfs to search forward or backward through the file with or without
  wraparound.  If you specify a	forward	search with wraparound,	bfs continues
  searching from the beginning of the file after it reaches the	end of the
  file.	 If you	specify	a backward search with wraparound, it continues
  searching backward from the end of the file after it reaches the beginning.
  A search without wraparound stops at the beginning or	end of the file.

  Specify the four types of searches as	follows:

	  Searches forward with	wraparound for pattern.

	  Searches backward with wraparound for	pattern.

	  Searches forward without wraparound for pattern.

	  Searches backward without wraparound for pattern.

  The pattern matching routine of bfs differs somewhat from the	one used by
  ed and includes additional features.

  Only lowercase letters a through z can be used, and all 26 marks are remem-
  bered.  See ed(1) for	information on mark names.


  The e, g, v, k, n, p,	q, w, =	, !, and null subcommands operate the same as
  for ed.

  Subcommands such as --, +++-,	+++=, -12, and +4p are accepted.  Note that
  1,10p	and 1,10 both display the first	10 lines.

  The f	subcommand displays only the name of the file being scanned; there
  are no remembered filenames.	The w subcommand is independent	of output
  diversion, truncation, or compression.  See the xo, xt, and xc subcommands
  that follow.

  The following	additional subcommands are available:

  xf file
      Reads bfs	subcommands from file.	When bfs reaches the end of file or
      receives an INT signal or	if an error occurs, bfs	resumes	scanning the
      file that	contains the xf	subcommand. The	xf subcommands can be nested
      to a depth of 10.

  xo [file]
      Sends further output from	the p and null subcommands to the named	file,
      which is created with read and write permission granted to all users.
      If you do	not specify a file, bfs	writes to standard output. Note	that
      each redirection to a file creates the specified file, deleting an
      existing file if necessary.

      Positions	a label	in a subcommand	file.  The label is ended with a new-
      line character.  Spaces between the : (colon) and	the start of the
      label are	ignored.  This subcommand can be used to insert	comments into
      a	subcommand file, since labels need not be referenced.

      Sets the current line to the line	containing pattern and jumps to	label
      in the current command file if pattern is	matched	within the designated
      range of lines. The jump fails under any of the following	conditions:

	+  Either address1 or address2 is not between the first	and last
	   lines of the	file.

	+  address2 is less than address1.

	+  The pattern does not	match at least one line	in the specified
	   range, including the	first and last lines.

      This subcommand is the only one that does	not issue an error message on
      bad addresses, so	it can be used before other subcommands	are run	to
      test whether addresses are bad.  Note that the following subcommand is
      an unconditional jump:

      The xb subcommand	is allowed only	if it is read from a file or a pipe.
      If it is read from a pipe, only a	downward jump is possible.

  xt number
      Truncates	output from the	p and null subcommands to number characters.
      The default number is 255.

  xv[number]  [value]
      Assigns the specified value to the variable named	number (0 to 9).  You
      can put one or more spaces between number	and value.  For	example:
	   xv5 100
	   xv6 1,100p

      assigns the value	100 to the variable 5 and the value 1,100p to the
      variable 6.

      To reference a variable, put a % (percent	sign) in front of the vari-
      able name.  Given	the preceding assignments for variables	5 and 6, the
      following	three subcommands each display the first 100 lines of a	file:

      To escape	the special meaning of %, precede it with a \ (backslash).

      matches and lists	lines containing printf	variables (%c, %d, or %s).

      You can also use the xv subcommand to assign the first line of command
      output as	the value of a variable.  To do	this, make the first charac-
      ter of value an !	(exclamation point), followed by the command name.
      For example, the following command line stores the first line of the
      file junk	in the variable	5:
	   xv5 !cat junk

      To escape	the special meaning of ! as the	first character	of value,
      precede it with a	\ (backslash).	For example, the following command
      line stores the value !date in the variable 7:
	   xv7 \!date

  xbz label
      Tests the	last saved exit	value from a shell command and jumps to	label
      in the current command file if the value is 0 (zero).

  xbn label
      Tests the	last saved exit	value from a shell command and jumps to	label
      in the current command file if the value is not 0	(zero).

  xc [switch]
      Turns compressed output mode on or off.  (Compressed output mode
      suppresses empty lines and replaces multiple spaces and tabs with	a
      single space.)

      If switch	is 1, output from the p	and null subcommands is	compressed;
      if switch	is 0 it	is not.	 If you	do not specify switch, the current
      value of switch reverses.	 Initially, switch is set to 0.


  Commands:  csplit(1),	ed(1), grep(1)

  Functions:  regexp(3)