col [-bfpx]
col 实用程序从标准输入读取并写入标准输出。它可执行反向换行符以及半正向换行符和半反向换行符暗含的行覆盖。除非使用 –x,否则只要有可能,便会将输入中的所有空白字符转换为制表符。col 对于过滤使用 nroff(1) 的 .rt 命令生成的多列输出和使用 tbl(1) 预处理程序生成的输出特别有用。
col 使用 ASCII 控制字符 SO 和 SI 表示备用字符集中文本的开始和结束位置。程序将记住每个输入字符所属的字符集,输出时视情况生成 SI 和 SO 字符,以确保将每个字符写入正确的字符集。
输入时,只接受以下控制字符:空格、退格、制表符、回车和换行符、SI、SO、VT、反向换行符、半正向换行符和半反向换行符。VT 字符是全反向换行符的备用格式,包含它是为了与该类型的一些早期程序兼容。要复制到输出中的其他字符必须是可显示字符。
上述控制函数和行移动序列的 ASCII 代码如下表中所示。ESC 表示 ASCII 转义符,八进制代码为 033;ESC− 表示两个字符的序列,ESC 后跟字符 x。
|
假设使用的输出设备无法退格。在这种情况下,如果两个或更多字符出现在同一位置,将只输出最后读取的一个。
尽管 col 在输入中接受半行移动,但是通常在输出时并不将其省略。而是将出现在行之间的文本移至下一个整行边界。这种处理方式可通过 –f (fine) 选项加以阻止;在这种情况下,col 的输出中可能包含半正向换行符 (ESC-9),但是仍然从不包含任何类型的反向换行移动。
通常,col 将忽略输入中发现的任何未知转义序列;如果使用 –p 选项,col 会将这些序列作为常规字符输出,但要受反向换行移动产生的套印的限制。强烈建议不要使用该选项,除非用户完全了解转义序列的文本位置。
尽可能阻止 col 在输出时将空白字符转换为制表符。将制表停止位置视为每个列的 n 位置,以使 n 按模为 8 计算等于 1。
有关影响 col 执行的环境变量 LC_CTYPE、LC_MESSAGES 和 NLSPATH 的描述,请参见 environ(5)。
将返回以下错误值:
成功完成。
出现错误。
有关下列属性的说明,请参见 attributes(5):
|
nroff(1)、tbl(1)、ascii(5)、attributes(5)、environ(5)
col 接受的输入格式与使用 –T37 或 –Tlp 选项时 nroff 生成的输出匹配。如果最终处理 col 输出的设备可以解释半行移动,应使用 –T37(与 col 的 –f 选项)。否则,应使用 –Tlp。
col 无法备份超过 128 行或每行处理超过 800 个字符。
将忽略会导致备份超过文档第一行的局部垂直移动。因此,第一行不得带有任何上标。