Linux col命令教程:如何优雅地处理反向换行(附实例详解和注意事项)
Linux col命令介绍
col
命令在Linux系统中被用来过滤反向换行,使输出看起来更加有序,只有前向和半前向换行,并尽可能地用制表符替换空格字符。这在处理nroff
和tbl
的输出时非常有用。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
命令用于预处理表格以供nroff
或troff
使用。col
命令也经常用来处理tbl
的输出。
更多详细内容可以参考:
linux入门学习教程 - Linux入门自学网
Linux col命令详解:如何过滤掉反向换行符和空白字符
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!