col
命令在Linux系统中被用来过滤反向换行,使输出看起来更加有序,只有前向和半前向换行,并尽可能地用制表符替换空格字符。这在处理nroff
和tbl
的输出时非常有用。col
工具简单地从标准输入读取并写入标准输出。
col
命令在大多数Linux发行版中都可以使用,包括但不限于Ubuntu, Debian, Fedora, CentOS等。如果你发现你的系统中没有预装这个命令,你可以使用你的包管理器来安装它。例如,在基于Debian的系统中,你可以使用以下命令来安装:
[[email protected] ~]$ sudo apt-get install bsdmainutils
在基于RHEL的系统中,你可以使用以下命令来安装:
[[email protected] ~]$ sudo yum install util-linux
对于CentOS 8,你需要使用dnf
来安装:
[[email protected] ~]$ sudo dnf install util-linux
col
命令的基本语法如下:
col [-bfhpx] [-l num]
以下是col
命令的一些常用选项:
选项 | 说明 |
---|---|
-b | 不显示任何退格。它将只打印每个列位置上写入的最后一个字符。 |
-f | 允许前向半行换行(“精细”模式)。通常,在半行边界上打印的字符被打印在下一行。 |
-h | 不允许显示多个空格而不是制表符。 |
-l num | 在内存中至少缓冲num行。默认情况下,缓冲128行。 |
-p | 强制将未知的控制序列原样通过。通常,col 会过滤掉除了它自己能识别和解释的控制序列之外的所有输入中的控制序列。 |
-x | 输出多个空格而不是制表符。 |
好的,我明白了。让我们重新来看一下col
命令的实例,这次我会尝试将实例与实际情境相结合。
[[email protected] ~]$ man import | col -b > readme1.txt
这个命令将man import
的输出通过col -b
过滤后保存到readme1.txt
文件中。
[[email protected] ~]$ man cat | col -f > readme2.txt
这个命令将man cat
的输出通过col -f
过滤后保存到readme2.txt
文件中。
[[email protected] ~]$ man cp | col -h > readme3.txt
这个命令将man cp
的输出通过col -h
过滤后保存到readme3.txt
文件中。
[[email protected] ~]$ man chmod | col -l 29 > readme4.txt
这个命令将man chmod
的输出通过col -l 29
过滤后保存到readme4.txt
文件中。
[[email protected] ~]$ man wget | col -p > readme5.txt
这个命令将man wget
的输出通过col -p
过滤后保存到readme5.txt
文件中。
[[email protected] ~]$ man mount | col -x > readme6.txt
这个命令将man mount
的输出通过col -x
过滤后保存到readme6.txt
文件中。
[[email protected] ~]$ man ls | col -fx > readme7.txt
这个命令将man ls
的输出通过col -fx
过滤后保存到readme7.txt
文件中。-f
选项允许前向半行换行,-x
选项使得输出多个空格而不是制表符。
[[email protected] ~]$ man chmod | col -bl 29 > readme8.txt
这个命令将man chmod
的输出通过col -bl 29
过滤后保存到readme8.txt
文件中。-b
选项使得不显示任何退格,-l
选项使得在内存中至少缓冲29行。
[[email protected] ~]$ man wget | col -bp > readme9.txt
这个命令将man wget
的输出通过col -bp
过滤后保存到readme9.txt
文件中。-b
选项使得不显示任何退格,-p
选项使得强制将未知的控制序列原样通过。
如果你在使用col
命令时遇到了bash: col: command not found
的错误,那么你可能需要安装bsdmainutils
(对于基于Debian的系统)或util-linux
(对于基于RHEL的系统)包。
以下是一些与col
命令相关的命令:
nroff
命令可以格式化文本以供显示器查看。col
命令经常用来处理nroff
的输出。tbl
命令用于预处理表格以供nroff
或troff
使用。col
命令也经常用来处理tbl
的输出。更多详细内容可以参考:
linux入门学习教程 - Linux入门自学网
Linux col命令详解:如何过滤掉反向换行符和空白字符