Linux系统之col命令的使用

 更新时间:2025年04月16日 08:46:38   作者:门前灯  
这篇文章主要介绍了Linux系统之col命令的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Linux之col命令的使用

col 是一个用于过滤输入中的反向(及半反向)行进控制字符,确保输出顺序正确,并仅包含正向和半正向的行进控制符。此外,它还可以在可能的情况下用制表符替换空白字符。

这对于处理 nroff(1)tbl(1) 的输出特别有用。

基本语法

col [选项] < 输入文件 > 输出文件

核心选项

选项描述
-b --no-backspaces忽略所有退格符(只打印每列最后字符)
-f --fine启用精细模式(允许半行前进符)
-p --pass放行未知控制序列(默认会过滤)
-h --tabs将连续空格转为制表符(默认行为)
-x --spaces禁用空格转制表符(保持原样空格)
-l NUM --lines=NUM设置行缓冲数量(默认128行)

使用示例

1. 基础过滤

# 处理man手册输出
man ls | col -b > ls_manual.txt

# 处理tbl生成的表格
tbl data.t | nroff | col -x > formatted_table.txt

2. 高级控制

# 保留半行控制符(用于精细排版)
groff -Tascii document.roff | col -f

# 处理含特殊控制符的文件
col -bp < control_chars.txt > cleaned.txt

处理的控制字符

转义序列十进制值功能
ESC-7\0337反向换行
ESC-8\0338半反向换行
ESC-9\0339半正向换行
\b8退格(首列忽略)
\n10换行+回车
\r13回车
\t9水平制表
\v11垂直制表(反向换行)

典型工作流

注意事项

字符集处理

  • 自动跟踪Shift In/Out(字符集切换)
  • 确保输出时字符集正确

缓冲限制

  • 默认缓冲128行(可通过-l调整)
  • 尝试回溯已刷新行会触发警告

特殊场景

# 处理包含ANSI颜色代码的文本
col -bp < colored_text.log > plain_text.log

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Linux下通过sed命令对kv方式的配置文件进行修改

    Linux下通过sed命令对kv方式的配置文件进行修改

    sed是unix下的面向字符流的编辑器,即stream editor, 它是面向行的,以行为单位进行处理,同时,sed是非交互式的,一旦执行便要处理完整个文件。这篇文章主要介绍了Linux下通过sed命令对kv方式的配置文件进行修改,需要的朋友可以参考下
    2018-11-11
  • CentOS 6.5平台实现快速部署FTP的方法

    CentOS 6.5平台实现快速部署FTP的方法

    这篇文章主要介绍了CentOS 6.5平台实现快速部署FTP的方法,结合实例形式分析了CentOS6.5平台配置与部署FTP的具体步骤、相关操作命令与注意事项,需要的朋友可以参考下
    2018-04-04
  • 学习Vim合并行的方法和技巧

    学习Vim合并行的方法和技巧

    这篇文章主要介绍了学习Vim合并行的方法以及代码实现过程,值得参考,一起来学习下。
    2017-11-11
  • 【Linux】linux常用基本命令总结(推荐)

    【Linux】linux常用基本命令总结(推荐)

    Linux中许多常用命令是必须掌握的,这里将我学linux入门时学的一些常用的基本命令分享给大家一下,有兴趣的可以了解一下。
    2016-11-11
  • linux free命令详解

    linux free命令详解

    本篇文章主要介绍了linux free命令详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • Apache Thrift环境配置

    Apache Thrift环境配置

    这篇文章主要介绍了Apache Thrift环境配置的相关资料,需要的朋友可以参考下
    2017-10-10
  • 在Ubunt16.04上安装LAMP的方法

    在Ubunt16.04上安装LAMP的方法

    这篇文章主要介绍了在Ubunt16.04上安装LAMP的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • 利用logsave如何将命令输出保存起来

    利用logsave如何将命令输出保存起来

    logsave命令运行给定的命令,并将命令的输出信息保存到指定的日志文件中。下面这篇文章主要给大家介绍了关于利用logsave如何将命令输出保存起来的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-05-05
  • 使用Xshell建立连接并操纵服务器的方法

    使用Xshell建立连接并操纵服务器的方法

    Xshell对于开发人员来说是一款不可或缺的工具,它可以简单快捷地访问远端不同系统的服务器,以达到远程控制终端的目的,本文小编就为大家演示如何使用Xshell建立一个连接并操纵服务器,需要的朋友可以参考下
    2022-10-10
  • 在Linux开发板中使用.NET实现音频录制与播放功能

    在Linux开发板中使用.NET实现音频录制与播放功能

    本文将以Linux开发板为基础,使用ALSA音频框架和C#语言,演示如何实现基础的音频录制与播放功能,文中通过代码示例讲解的非常详细,需要的朋友可以参考下
    2025-03-03

最新评论