Linux col命令教程:如何优雅地处理反向换行(附实例详解和注意事项)

2023-12-28 10:49:54

Linux col命令介绍

col命令在Linux系统中被用来过滤反向换行,使输出看起来更加有序,只有前向和半前向换行,并尽可能地用制表符替换空格字符。这在处理nrofftbl的输出时非常有用。col工具简单地从标准输入读取并写入标准输出。

Linux col命令适用的Linux版本

col命令在大多数Linux发行版中都可以使用,包括但不限于Ubuntu, Debian, Fedora, CentOS等。如果你发现你的系统中没有预装这个命令,你可以使用你的包管理器来安装它。例如,在基于Debian的系统中,你可以使用以下命令来安装:

[linux@bashcommandnotfound.cn ~]$ sudo apt-get install bsdmainutils

在基于RHEL的系统中,你可以使用以下命令来安装:

[linux@bashcommandnotfound.cn ~]$ sudo yum install util-linux

对于CentOS 8,你需要使用dnf来安装:

[linux@bashcommandnotfound.cn ~]$ sudo dnf install util-linux

Linux col命令的基本语法

col命令的基本语法如下:

col [-bfhpx] [-l num]

Linux col命令的常用选项或参数说明

以下是col命令的一些常用选项:

选项说明
-b不显示任何退格。它将只打印每个列位置上写入的最后一个字符。
-f允许前向半行换行(“精细”模式)。通常,在半行边界上打印的字符被打印在下一行。
-h不允许显示多个空格而不是制表符。
-l num在内存中至少缓冲num行。默认情况下,缓冲128行。
-p强制将未知的控制序列原样通过。通常,col会过滤掉除了它自己能识别和解释的控制序列之外的所有输入中的控制序列。
-x输出多个空格而不是制表符。

Linux col命令的实例

好的,我明白了。让我们重新来看一下col命令的实例,这次我会尝试将实例与实际情境相结合。

Linux col命令的实例

实例1:将输出保存为纯文本文件

[linux@bashcommandnotfound.cn ~]$ man import | col -b > readme1.txt

这个命令将man import的输出通过col -b过滤后保存到readme1.txt文件中。

实例2:将输出保存为纯文本文件,并允许前向半行换行

[linux@bashcommandnotfound.cn ~]$ man cat | col -f > readme2.txt

这个命令将man cat的输出通过col -f过滤后保存到readme2.txt文件中。

实例3:将输出保存为纯文本文件,不允许显示多个空格而不是制表符

[linux@bashcommandnotfound.cn ~]$ man cp | col -h > readme3.txt

这个命令将man cp的输出通过col -h过滤后保存到readme3.txt文件中。

实例4:将输出保存为纯文本文件,并在内存中至少缓冲29行

[linux@bashcommandnotfound.cn ~]$ man chmod | col -l 29 > readme4.txt

这个命令将man chmod的输出通过col -l 29过滤后保存到readme4.txt文件中。

实例5:将输出保存为纯文本文件,并强制将未知的控制序列原样通过

[linux@bashcommandnotfound.cn ~]$ man wget | col -p > readme5.txt

这个命令将man wget的输出通过col -p过滤后保存到readme5.txt文件中。

实例6:将输出保存为纯文本文件,并输出多个空格而不是制表符

[linux@bashcommandnotfound.cn ~]$ man mount | col -x > readme6.txt

这个命令将man mount的输出通过col -x过滤后保存到readme6.txt文件中。

实例7:将输出保存为纯文本文件,允许前向半行换行,并输出多个空格而不是制表符

[linux@bashcommandnotfound.cn ~]$ man ls | col -fx > readme7.txt

这个命令将man ls的输出通过col -fx过滤后保存到readme7.txt文件中。-f选项允许前向半行换行,-x选项使得输出多个空格而不是制表符。

实例8:将输出保存为纯文本文件,不显示任何退格,并在内存中至少缓冲29行

[linux@bashcommandnotfound.cn ~]$ man chmod | col -bl 29 > readme8.txt

这个命令将man chmod的输出通过col -bl 29过滤后保存到readme8.txt文件中。-b选项使得不显示任何退格,-l选项使得在内存中至少缓冲29行。

实例9:将输出保存为纯文本文件,不显示任何退格,并强制将未知的控制序列原样通过

[linux@bashcommandnotfound.cn ~]$ man wget | col -bp > readme9.txt

这个命令将man wget的输出通过col -bp过滤后保存到readme9.txt文件中。-b选项使得不显示任何退格,-p选项使得强制将未知的控制序列原样通过。

Linux col命令的注意事项

如果你在使用col命令时遇到了bash: col: command not found的错误,那么你可能需要安装bsdmainutils(对于基于Debian的系统)或util-linux(对于基于RHEL的系统)包。

Linux col相关命令

以下是一些与col命令相关的命令:

  • nroff 命令 - 使用nroff命令可以格式化文本以供显示器查看。col命令经常用来处理nroff的输出。
    -tbl 命令 - tbl命令用于预处理表格以供nrofftroff使用。col命令也经常用来处理tbl的输出。

更多详细内容可以参考:
linux入门学习教程 - Linux入门自学网
Linux col命令详解:如何过滤掉反向换行符和空白字符

文章来源:https://blog.csdn.net/u012964600/article/details/135201348
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。