 |
Index for Section 1 |
|
 |
Alphabetical listing for B |
|
 |
Bottom of page |
|
bfs(1)
NAME
bfs - Scans files
SYNOPSIS
bfs [-] file...
The bfs command is a read-only line editor typically used to scan files.
OPTIONS
- Suppresses the display of file sizes. Normally, bfs displays the size
in bytes of the file being scanned.
DESCRIPTION
The bfs command is similar to the ed command, but has some additional
subcommands 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:
/pattern/
Searches forward with wraparound for pattern.
?pattern?
Searches backward with wraparound for pattern.
>pattern>
Searches forward without wraparound for pattern.
<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
remembered. See ed(1) for information on mark names.
SUBCOMMANDS
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.
:label
Positions a label in a subcommand file. The label is ended with a
newline 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.
[address1[,address2]xb/pattern/label
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:
xb/^/label
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
variable name. Given the preceding assignments for variables 5 and 6,
the following three subcommands each display the first 100 lines of a
file:
1,%5p
1,%5
%6
To escape the special meaning of %, precede it with a \ (backslash).
g/".*\%[cds]/p
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
character 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.
SEE ALSO
Commands: csplit(1), ed(1), grep(1)
Functions: regexp(3)
 |
Index for Section 1 |
|
 |
Alphabetical listing for B |
|
 |
Top of page |
|