从输入过滤反向换行
命令语法格式
col [-bfhpx] [-l num]
命令描述
命令col过滤掉反向换行符和半反向换行符,以便输出的顺序正确,且只包含正向换行符和半正向换行,并在可能的情况下用制表符替换空白字符。这在处理nroff(1)和tbl(1)的输出时非常有用。
命令col从标准输入读取,并写入标准输出。
关于换行、反向换行等概念参考文章「What is a reverse line feed」、「Newline」。
命令支持的选项及含义
-b
不输出任何退格,仅打印写入每个列位置的最后一个字符。
-f
允许半正向换行符(“fine”模式)。通常,打印在半行边界上的字符会被打印在紧跟的行中。
-l num
至少在内存中缓冲num行。默认缓冲128行。
-p
通过不变,强制未知的控制序列。通常,命令col将从输入中过滤掉除自身识别和解释的控制序列之外的任何控制序列,如下所列。
-h
不要输出多个空格,而是输出制表符(TAB)。
-x
输出多个空格,而不是制表符。
下表列出了命令col理解的回车的控制序列及其十进制值:
ESC-7 reverse line feed (escape then 7) ESC-8 half reverse line feed (escape then 8) ESC-9 half forward line feed (escape then 9) backspace moves back one column (8); ignored in the first column carriage return (13) newline forward line feed (10); also does carriage return shift in shift to normal character set (15) shift out shift to alternate character set (14) space moves forward one column (32) tab moves forward to next tab stop (9) vertical tab reverse line feed (11)
所有无法识别的控制字符和转义序列都会被丢弃。
命令col实用程序会在读取字符时跟踪字符集,并确保输出时字符集正确。
如果输入尝试返回到上一个已刷出的行,则col将显示警告消息。
注意事项
命令col符合Single UNIX Specification(“SUSv2”)的第2版。
相关环境变量
环境变量LANG, LC_ALL, LC_CTYPE会影响col的执行,参见手册environ(7)中的说明。
退出状态
0 执行成功
>0 产生错误
相关手册
colcrt(1), expand(1), nroff(1), tbl(1)
参考文献
- man 1 col, Version 9.0.12
更新日志
- 08/07/2018 创建文章