Linux 中的 col 工具非常强大,它主要用于过滤掉文本中的反向换行符,并尽可能将空白字符替换为制表符。我们在处理来自 INLINECODE000aadbb 和 INLINECODE5864efc9 等命令的输出时,会发现它特别实用。col 工具从标准输入读取数据并将其写入标准输出。因此,它在管道流中处理文本时是一个非常方便的实用程序。
语法
col [-bfhpx] [-l num]
基础示例
首先,让我们构建一个名为 ****sample.txt**** 的示例文件,其中包含带有反向换行符和空白字符的文本:
!Basic Examplesample.txt data
然后,我们运行不带任何选项的基础 ‘col‘ 命令:
cat sample.txt | col > output.txt
这条命令会读取输入内容,去除反向换行符,并使用经过优化的空白字符。
!<a href="https://media.geeksforgeeks.org/wp-content/uploads/20241014142139714665/2024-10-1414-21.png">2024-10-1414-21Basic col command example
col 命令的关键选项
描述
—
不输出退格符
允许前向半行换行
不输出多个空格来代替制表符
在内存中至少缓冲 num 行
原样传递未知的控制序列
输出多个空格来代替制表符### 1. -b (不输出退格符)
使用此选项,退格符将不会显示,取而代之的是,只打印写入每个列位置的最后一个字符。
cat sample.txt | col -b > output_no_backspace.txt
2. -f (允许前向半行换行)
此选项允许半行换行符通过,这对于某些文本格式可能非常有用。
cat sample.txt | col -f > output_half_line_feeds.txt
! -f (Forward Half Line Feeds)
3. -h (不扩展多个空格)
此选项不会产生多个空格,而是在可能的情况下使用制表符:
cat sample.txt | col -h > output_no_multiple_spaces.txt
!-h Do Not Expand Multiple Spaces
4. -l (缓冲行数)
此选项指定在内存中缓冲的行数;默认值为 128 行。
cat sample.txt | col -l 256 > output_buffered.txt
5. -p: 传递未知的控制序列
此选项允许未知的控制序列原样通过,而不被过滤掉。
cat sample.txt | col -p > output_pass_control.txt
6. -x: 输出多个空格
此选项会为每个制表符打印多个空格。对于某些类型的布局格式,这可能是必要的。
cat sample.txt | col -x > output_multiple_spaces.txt
!<a href="https://media.geeksforgeeks.org/wp-content/uploads/20241014143314459304/2024-10-1414-32.png">2024-10-1414-32
总结
col 命令 是 Linux 文本处理工具箱中的一个通用工具。在格式化复杂文本(如 man 手册页)或在各种文本格式化工具的输出场景中,它是不可或缺的。此外,了解其不同的选项和用法,将使我们在文本处理工作流中能够有效地控制换行符、空白字符和控制字符。