扫描文件。
bfs [ - ] File
bfs 命令读取由 File 参数指定的文件,但不处理该文件。可以扫描该文件,但不能对它进行编辑。
bfs 命令基本上是 ed 命令的只读版本,只有两个特例:bfs 命令能够处理较大文件且具有附加子命令。
输入文件可长达 32,767 行,每行有多达 255 个字符。对于扫描文件,bfs 命令通常比 ed 命令更有效,因为文件不会被复制至缓冲区。bfs 命令对于标识可分的较大文件部分最有用,它使用 csplit 命令将较大文件分为对于编辑来说更易管理的片断。
如果输入 P 子命令,bfs 命令会以一个 *(星号)作为提示。可以输入第二个 P 子命令来关闭提示。bfs 命令在提示打开时会显示错误消息。
bfs 命令可在单字节和多字节环境中运行。LANG 环境变量(在 /etc/environment 文件中)的设置确定 shell 的语言环境。
bfs 命令支持在 ed 命令下描述的所有地址表达式。此外,可以指示 bfs 命令在文件中向前或向后搜索,无论是否回绕。如果指定了带回绕的向前搜索,bfs 命令到达文件末尾后会继续从文件开头搜索。如果指定了带回绕的向后搜索,该命令在到达开头后会继续从文件末尾搜索。指定四种搜索类型的符号如下:
/Pattern/ | 带回绕的向前搜索 Pattern。 |
?Pattern? | 带回绕的向后搜索 Pattern。 |
>Pattern> | 不带回绕的向前搜索 Pattern。 |
<Pattern< | 不带回绕的向后搜索 Pattern。 |
bfs 命令的模式匹配例程与 ed 命令使用的模式匹配例程有所不同且包括 regcmp 子例程中描述的附加功能。在标记名称方面也有细微不同:只可使用 a 到 z 的小写字母,且会记忆所有 26 个标记。
- | 禁止文件大小的显示。通常,bfs 命令以字节来显示正在被扫描的文件大小。 |
e、g、v、k、n、p、q、w、=、! 和空子命令按照 ed 命令中的解释运行。然而,bfs 命令不支持地址和子命令间的空格。诸如 --、+++-、+++=、-12 和 +4p 子命令是可接受的。1、10p 和 1、10 都显示开头十行。f 子命令仅显示正在扫描的文件名;没有记忆的文件名。w 子命令独立于输出变更、截断或压缩(相应于 xo、xt 和 xc 子命令)。压缩输出方式禁止空行并用单个空格替代多个空格和跳格。
以下附加子命令是可用的:
xf File | 从指定文件读取 bfs 子命令。当 bfs 命令到达文件末尾或接收到中断信号,或者如果发生错误,bfs 命名会恢复扫描包含 xf 子命令的文件。这些 xf 子命令可被嵌套至深度 10。 |
xo [File] | 从 p 和空子命令将进一步输出发送至指定的文件,该文件创建时将读写许可授权给所有用户。如果不指定 File 参数,bfs 命令写至标准输出。每个至文件的重定向将创建所指定文件,需要时删除已存在的文件。 |
:Label | 将标签定位于子命令文件中。该标签以换行字符结尾。忽略 :(冒号)与标签开头间的空格。该子命令可用于将注释插入子命令文件,因为无需引用标签。 |
[Address1[,Address2]] xb/Pattern/Label | 将当前行设置为包含指定模式的行,并转至当前命令文件中指定的标签(如果此模式在行的指定范围内匹配的话)。在以下任何情况下跳转都会失败:
该子命令是仅有的不在坏地址上发出错误消息的子命令,因此在运行其它子命令前可用于测试地址是否是坏的。子命令: xb/^/label 是无条件转移的。 仅当从除工作站以外的其它地方读取 xb 子命令时,该子命令才被允许。如果是从管道读取该子命令,只可能向下转移。 |
xt [Number] | 截断从 p 子命令和空子命令至字符号的输出。Number 参数的缺省值是 192。 |
xv[Digit] [Value] | 将指定的 Value 指定给 Digit 参数。Digit 参数的值可以是 0 到 9。可在 Digit 和 Value 之间放置一个或多个空格。例如:
xv5 100 xv6 1,100p 将值 100 指定给变量 5 并将值 1,100p 指定给变量 6。 要引用变量,在变量名前放置 %(百分号)。如果已经给出了变量 5 和 6 的先前赋值,以下三个子命令: 1,%5p 1,%5 %6 每个会显示文件的开头 100 行。 要转义 % 的特殊意义,在它之前键入 \ (反斜杠)。例如: g/".*\%[cds]/p 匹配并列出包含 printf 变量(%c、%d 或 %s)的行。 也可以使用 xv 子命令将命令输出的第一行指定为变量的值。要做到这点,使 Value 参数的第一个字符成为 !(感叹号),命令名紧跟其后。例如: xv5 !cat junk 将 junk 文件的第一行保存在变量 5 中。 将 ! 的特殊意义转义为Value 变量的第一个字符,在它之前键入 \ (反斜杠)。例如: xv7 \!date 将值 !date 保存在变量 7 中。 |
xbz Label | 测试 shell 命令的最后保存退出值并转至当前命令文件中指定的标签(如果值是 0 的话)。 |
xbn Label | 测试 shell 命令的最后保存退出值并转至当前命令文件中指定的标签(如果值不是 0 的话)。 |
xc [Switch] | 关闭或打开压缩输出方式。(压缩输出方式禁止空行并用单个空格替代多个空格和跳格。)
如果 Switch 参数具有值 1,则来自 p 子命令和空子命令的输出会被压缩。如果 Switch 参数是 0,则该输出不会被压缩。如果不为 Switch 参数指定值,则 Switch 参数的当前值(初始设置为 0)逆向。 |
返回以下退出值:
0 | 在没有任何文件或命令错误的情况下成功完成。 |
>0 | 发生错误。 |
/usr/bin/bfs | 包含 bfs 命令。 |
enviroment 文件。
《AIX 5L V5.2 系统用户指南:操作系统与设备》 中的文件和目录访问方式介绍了访问文件和目录的文件所有权和许可权。
《AIX 5L V5.2 系统用户指南:操作系统与设备》 中的目录概述。
《AIX 5L V5.2 系统用户指南:操作系统与设备》 中的文件概述描述了文件、文件类型以及如何命名文件。
《AIX 5L V5.2 系统用户指南:操作系统与设备》 中的输入与输出重定向概述描述了操作系统如何处理输入与输出。