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

Ubuntu 20.04 column无-o选项时实现冒号分隔文件格式化的方法

Ubuntu 20.04 替代column -o实现格式化的方案

Ubuntu 20.04 默认携带的column命令为BSD版本,未提供-o输出分隔符选项,可通过以下几种方案实现相同效果:

方案1:column + sed 组合(最简单,适合绝大多数场景)

先用column按冒号分隔对齐两列,再用sed将每行第一组连续空格替换为|即可,命令如下:

cat /tmp/foo.txt | column -s ':' -t | sed 's/  */|/'

注:sed默认只替换每行第一个匹配项,不会修改第二列内容里的空格,输出效果和原命令完全一致。

方案2:纯awk实现(更稳定,无额外依赖)

如果对输出稳定性要求更高,可以直接用awk计算第一列最大宽度后格式化输出,无需依赖column命令:

awk -F ':' '
BEGIN { max = 0 }
# 第一遍遍历统计第一列最大长度
{ lines[NR] = $0; if (length($1) > max) max = length($1) }
END {
    # 第二遍遍历格式化输出
    for (i = 1; i <= NR; i++) {
        split(lines[i], cols, ":")
        printf "%-"max"s|%s\n", cols[1], substr(lines[i], length(cols[1]) + 2)
    }
}' /tmp/foo.txt

方案3:安装支持-o选项的column版本(适合允许更新软件包的环境)

Ubuntu官方源提供的util-linux包携带的column命令已支持-o选项,你可以直接安装该包替换默认的BSD版本column:

sudo apt update && sudo apt install -y util-linux

安装完成后即可直接使用原column -s ':' -t -o '|'命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 11:45:05