ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Linux column 命令详解:按列格式化输出文本的完整实战指南(linux-command 命令手册)

Linux column 命令详解:按列格式化输出文本的完整实战指南(linux-command 命令手册) 文档教程【免费下载链接】linux-commandLinux命令大全搜索工具内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux项目地址https://gitcode.com/GitHub_Trending/linux/linux-command点击查看免费下载column是 Linux 下最实用的文本排版工具之一它能把凌乱的单列或多列数据整理成对齐工整的表格甚至直接输出结构化 JSON。本篇以 linux-command 项目收录的 command/column.md 文档为骨架系统讲解其语法、全部选项与三组实战示例并结合仓库的索引数据dist/data.json与构建脚本scripts/dash.mjs说明该命令在文档生态中的定位。读完本文你将能熟练使用column处理日志对齐、配置解析、/etc/passwd等文件的格式化输出。命令概览column命令的功能是按列格式化输出文件它支持两种典型的使用模式将单列数据整理为多列显示每行宽度可指定超出的部分自动换行适合把一长串垂直数据压缩成横向表格将多列数据进行快速整理对齐每列的字符把原本参差不齐的文本按空白符或自定义分隔符切分为表格列并逐列对齐。它常用于管道处理链中配合cat、grep、awk等命令的输出做最后的排版美化。由于多数主流 Linux 发行版默认自带该命令column -V可查看版本无需额外安装即可使用。概要语法column [options] [file ...]options控制列宽、表格模式、分隔符、JSON 输出等行为详见下文选项表file ...一个或多个输入文件多个文件按顺序处理。参数与数据来源file可选是唯一的位置参数。当没有指定文件时column默认从标准输入读取数据因此可以配合管道符使用echo -e b 2\na 1 | column -t这一特性让column成为 Shell 管道排版链中的常见收尾工具。指定多个文件时各文件内容会被依次拼接处理若某个文件不存在column会向标准错误输出提示并继续处理其余文件。选项速查表选项说明-c, --columns width输出宽度以字符数表示。用于单列转多列场景超出指定宽度的内容会自动换行折成下一列-t, --table创建表格模式按分隔符切分输入并为每列字符对齐-s, --separator string指定识别表格输入的分隔符可传多个字符如,、:、空格默认按空白符切分-o, --output-separator string指定表格输出的列分隔符默认是两个空格-x, --fillrows在列之前填充行即先横向填满一行再换行填充-N, --table-columns names添加列名逗号分隔为后续列赋予语义名称-J, --json格式化为 JSON 输出需要配合-N/--table-columns使用-h, --help显示帮助信息-V, --version输出版本信息几个容易被忽略的组合要点-t决定是否按表格语义切分列-s只影响切分规则不影响输出-o只有在-t表格模式下才生效默认输出分隔符为两个空格-J输出 JSON 时必须以-N声明列名否则无法为每条记录生成键值对-x与默认的“先按列填充”方向相反适合需要横向优先排列的场景。返回值column成功执行后将格式化排列后的字符串输出到标准输出。它不产生独立的返回码语义在管道链中通常作为末端排版步骤使用其输出可直接重定向到文件cat test | column -t aligned.txt实战一整理单列数据先用 Shell 生成 26 个英文字母每个字母单独一行作为单列测试数据# 生成 26 个英文字母每列一个 $ for a in {a..z}; do echo $a; done test指定输出宽度-c 60每行最大 60 个字符字母被自动编排成多列超出宽度的内容折行$ cat test | column -c 60 a e i m q u y b f j n r v z c g k o s w d h l p t x可以看到 26 个字母被折成 7 列且列间已按最长项自动留白对齐。二次排版-t对齐在上面的基础上进一步整理-t会把每列之间的空白规范为默认的两个空格$ cat test | column -c 60 | column -t a e i m q u y b f j n r v z c g k o s w d h l p t x自定义输出分隔符-o , 指定每列之间用, 逗号加空格拼接$ cat test | column -c 60 | column -t -o , a, e, i, m, q, u, y b, f, j, n, r, v, z c, g, k, o, s, w d, h, l, p, t, x该组合非常适合把纵向数据转成 CSV 风格或对齐的中文表格。实战二整理多列数据多列文本往往长短不一、分隔符混杂column的表格模式能一键对齐。以下是一段模拟芯片引脚信号的凌乱文本test$ cat test Address[0] Metal3,pin 133.175:159.92 Address[1] Metal3,pin 112.38:159.92 Address[2] Metal3,pin 70.775:159.92 Address[3] Metal3,pin 41.655:159.92 DataIn[0] Metal3,pin 66.615:159.92 DataIn[1] Metal3,pin 37.495:159.92 DataIn[2] Metal3,pin 122.88:159.92 DataIn[3] Metal3,pin 95.74:159.92 DataOut[0] Metal3,pin 45.815:159.92 DataOut[1] Metal3,pin 79.095:159.92 DataOut[2] Metal3,pin 104.055:159.92 DataOut[3] Metal3,pin 62.46:159.92 MemReq Metal3,pin 108.215:159.92 RdWrBar Metal3,pin 87.415:159.92 clock Metal3,pin 74.935:159.92默认空白符对齐-t直接按空白符切分并对齐三列信号名、金属层、坐标首列因长度不同自动补齐空格$ cat test | column -t Address[0] Metal3,pin 133.175:159.92 Address[1] Metal3,pin 112.38:159.92 Address[2] Metal3,pin 70.775:159.92 Address[3] Metal3,pin 41.655:159.92 DataIn[0] Metal3,pin 66.615:159.92 DataIn[1] Metal3,pin 37.495:159.92 DataIn[2] Metal3,pin 122.88:159.92 DataIn[3] Metal3,pin 95.74:159.92 DataOut[0] Metal3,pin 45.815:159.92 DataOut[1] Metal3,pin 79.095:159.92 DataOut[2] Metal3,pin 104.055:159.92 DataOut[3] Metal3,pin 62.46:159.92 MemReq Metal3,pin 108.215:159.92 RdWrBar Metal3,pin 87.415:159.92 clock Metal3,pin 74.935:159.92多分隔符切分-s ,: 将,、:和空格都识别为分隔符原本混在Metal3,pin 133.175:159.92中的元素被进一步拆成 5 列$ cat test | column -t -s ,: Address[0] Metal3 pin 133.175 159.92 Address[1] Metal3 pin 112.38 159.92 Address[2] Metal3 pin 70.775 159.92 Address[3] Metal3 pin 41.655 159.92 DataIn[0] Metal3 pin 66.615 159.92 DataIn[1] Metal3 pin 37.495 159.92 DataIn[2] Metal3 pin 122.88 159.92 DataIn[3] Metal3 pin 95.74 159.92 DataOut[0] Metal3 pin 45.815 159.92 DataOut[1] Metal3 pin 79.095 159.92 DataOut[2] Metal3 pin 104.055 159.92 DataOut[3] Metal3 pin 62.46 159.92 MemReq Metal3 pin 108.215 159.92 RdWrBar Metal3 pin 87.415 159.92 clock Metal3 pin 74.935 159.92-s的取值是一个字符集合空格在-s ,: 中同样作为分隔符参与切分这使其非常擅长解析坐标、CSV、key:value等混合格式文本。实战三添加列名并以 JSON 格式输出-J与-N组合可以把表格化数据直接输出为结构化 JSON适合交给下游脚本或程序消费。以/etc/passwd为例其字段以:分隔按序为用户名、口令、UID、GID、备注、主目录、登录 Shell$ column -J -s : -N Username,Password,UID,GID,Gecos,HomeDirectory,Shell /etc/passwd { table: [ { username: root, password: x, uid: 0, gid: 0, gecos: root, homedirectory: /root, shell: /bin/bash },{ username: daemon, password: x, uid: 1, gid: 1, gecos: daemon, homedirectory: /usr/sbin, shell: /usr/sbin/nologin },{ username: bin, password: x, uid: 2, gid: 2, gecos: bin, homedirectory: /bin, shell: /usr/sbin/nologin },{ username: sys, password: x, uid: 3, gid: 3, gecos: sys, homedirectory: /dev, shell: /usr/sbin/nologin },{ username: sync, password: x, uid: 4, gid: 65534, gecos: sync, homedirectory: /bin, shell: /bin/sync } ] }两点实操提示列名必须与字段一一对应-N中声明的 7 个列名对应-s :切分出的 7 个字段列数不匹配会导致输出结构错位JSON 键会自动小写化从输出可见Username变为username、HomeDirectory变为homedirectory即-N提供的列名在 JSON 键中被规范化处理脚本侧解析时需按小写键名取值。在 linux-command 仓库中的定位与延伸column文档来自 linux-command 项目收录的 600 多个 Linux 命令手册之一属于“文本处理”类命令。在仓库中可以找到它的结构化索引索引数据 dist/data.json 中记录了column的条目{ n: column, p: /column, d: 按列格式化输出文件 }n为命令名p为详情页路径d为描述该索引同时驱动着项目构建出的静态文档站与搜索功能项目 README.md 将column归入文本处理分类与awk、col、colrm、comm、csplit、sed、sort、tr、uniq、vi、wc等命令并列说明其定位是文本排版链中的基础工具构建脚本 scripts/dash.mjs 展示了该文档集如何被打包成 Dash/Zeal 离线文档通过 sqlite3 建立searchIndex索引这意味着column手册同样可以在离线文档集中被检索使用。在文本处理管道中column常与同类命令配合sort负责排序、uniq负责去重、tr负责字符替换而column -t负责最终的对齐呈现。例如sort /etc/passwd | column -t -s : -N User,Pass,UID,GID,Gecos,Home,Shell -J | head -40小结column用极少的选项解决了“文本对齐”这一高频需求单列数据column -c 宽度折列显示可再叠加-t、-o细化排版多列数据column -t一键对齐-s支持多字符分隔符解析复杂文本结构化输出-N-J将任意分隔符文本转为 JSON供脚本与程序直接消费。建议结合 command/column.md 原文档与仓库内其他文本处理命令如 command/sort.md、command/uniq.md、command/tr.md对照阅读即可构建完整的终端文本处理工具箱。赞分享文档教程【免费下载链接】linux-commandLinux命令大全搜索工具内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux项目地址https://gitcode.com/GitHub_Trending/linux/linux-command点击查看免费下载相关推荐Linux 光盘刻录命令 cdrecord 实战指南linux-command 命令手册详解Linux 光盘刻录命令 cdrecord 实战指南linux command 命令手册详解 本篇指南聚焦 Linux 系统下的经典刻录命令 cdrecor文档教程linux-command 命令手册详解consoletype 命令——输出已连接终端类型linux command 命令手册详解consoletype 命令——输出已连接终端类型 导读 consoletype 是 Linux 系统诊断与脚本编写中文档教程Linux 命令手册详解linux-command 仓库中的 cksum 文件完整性校验指南Linux 命令手册详解linux command 仓库中的 cksum 文件完整性校验指南 cksum 是 Linux 系统中用于校验文件完整性的基础命令文档教程上一篇LinkSwift网盘直链下载助手九大主流网盘高速下载的终极解决方案下一篇炉石传说脚本终极指南5分钟解放双手的自动化神器创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表