Linux系统之col命令的使用
目录
- Linwww.devze.comux之col命令的使用
- 基本语法
- 核心选项
- 使用示例
- 处理的控制字符
- 典型工作流
- 注js意事项
- 总结
linux之col命令的使用
col
是一个用于过滤输入中的反向(及半反向)行进控制字符,确保输出顺序正确,并仅包含正向和半正向的行进控制符。此外,它还可以在可能的情况下用制表符替换空白字符。
这对于处理 nroff(1)
和 tbl(1)
的输出特别有用。
基本语法
col [选项] < 输入文件 > 输出文件
核心选项
选项 | 描述 |
---|---|
-b --no-backspaces | 忽略所有退格符(只打印每列最后字符) |
-f php--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 | \033dFWUwpfP7 | 反向换行 |
ESC-8 | \0338 | 半反向换行 |
ESC-9 | \0339 | 半正向换行 |
\b | 8 | 退格(首列忽略) |
\n | 10 | 换行+回车 |
\r | 13 | 回车 |
\t | 9 | 水平制表 |
\v | 11 | 垂直制表(反向换行) |
典型工作流
注意事项
字符集处理:
- 自动跟踪Shift In/Oandroidut(字符集切换)
- 确保输出时字符集正确
缓冲限制:
- 默认缓冲128行(可通过
-l
调整) - 尝试回溯已刷新行会触发警告
特殊场景:
# 处理包含ANSI颜色代码的文本 col -bp < colored_text.log > plain_text.log
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。
精彩评论