gpt4 book ai didi

bash - 在 macOS 和 CentOS 上使用 'column -t'

转载 作者:行者123 更新时间:2023-12-04 19:42:02 24 4
gpt4 key购买 nike

我想在漂亮的表格中打印一些文本。
举个例子:

{
echo -e "\tIP address:-1.2.3.4"
echo -e "\tNetmask:-1.2.3.4"
echo -e "\tGateway:-1.2.3.4"
echo -e "\tDefault gateway:-1.2.3.4"
} | column -ts-

在 macOS(对我来说是 10.14.4)上,打印结果与我预期的一样:
    IP address:       1.2.3.4
Netmask: 1.2.3.4
Gateway: 1.2.3.4
Default gateway: 1.2.3.4

然而,在 CentOS 上(在 6 和 7 上测试过),它就不是那么漂亮了:
    IP address:   1.2.3.4
Netmask: 1.2.3.4
Gateway: 1.2.3.4
Default gateway: 1.2.3.4

所以我的问题是:有没有更好的方法我应该这样做?至少对于 CentOS?

如果您能告诉我为什么它可以在 macOS 上运行但不能在 CentOS 上运行,那就加分!

编辑 :

我的输出(即列)的长度可能会因一些不同的因素而异,所以我更喜欢这样的解决方案,我不必手动指定要打印的空格数以使其看起来很漂亮。

最佳答案

echocolumn非常适合在命令行中破解。

pretty-print 的最佳实践通常涉及 printf :

IPv4=('IP address:' 1.2.3.4 Netmask: 1.2.3.4 Gateway: 1.2.3.4 Default\ gateway: 1.2.3.4)
ip=; for ip in "${IPv4[@]}"; do ((${#ip} > max)) && max=${#ip}; done
printf "\t%-$((max+2))s%s\n" "${IPv4[@]}"
\t%-18s%s\n表示“文字制表符,字符串填充到 18 个字符,字符串,换行符”。它包含两个参数说明符 %x ,哪个 bash 将为所有参数回收。

注意:多词元素必须被引用或转义它们的空格才能被单独处理

编辑:添加了 flexbile 最大长度

关于bash - 在 macOS 和 CentOS 上使用 'column -t',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56084828/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com