You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu环境下用Awk实现表头展示并替代column --table-columns命令

解决Ubuntu下column --table-columns不兼容问题,改用Awk实现格式化输出

原命令依赖Kali中column命令的--table-columns参数,但Ubuntu自带的column版本(util-linux旧版)不支持该参数,以下是改用Awk实现需求的方案:

完整命令

awk -v Name="$Name" -F ':' '
BEGIN {
    # 定义表头,通过%-Ns设置左对齐列宽,可按需调整数值
    printf "%-9s %-9s %-12s %s\n", "Number", "Type", "Capacity", "Status"
}
$1 == Name {
    # 输出匹配行:前4列按固定宽度对齐,最后一列保留原始空格内容
    printf "%-9s %-9s %-12s %s\n", $2, $3, $4, substr($0, index($0,$5))
}' venue.txt

命令说明

  1. 参数传递:-v Name="$Name"将Shell变量Name传入Awk,实现动态匹配目标行
  2. 字段分隔:-F ':'直接以冒号为分隔符处理原始venue.txt,省去原命令中多次tr转换的冗余操作
  3. 表头输出:BEGIN块在处理文件前打印格式化表头,%-Ns表示左对齐且占用N个字符宽度,可根据内容长度调整数值优化对齐效果
  4. 数据匹配与输出:仅处理第一列等于Name的行,最后一列用substr($0, index($0,$5))提取从第5个字段开始的完整文本,避免长消息被拆分

测试效果(当Name=B时)

运行命令后输出:

Number    Type      Capacity     Status
B01       Random    6            This is a long message

对齐调整

如果需要更贴合需求的格式,只需修改printf中的宽度数值即可,比如把%-9s改成%-8s让列更紧凑,或把%-12s改成%12s让容量数字右对齐。

内容的提问来源于stack exchange,提问作者Dream

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 20:27:40