Bash:键值漂亮的打印

时间:2012-08-14 12:01:01

标签: bash pretty-print

我以键值对的形式输出命令:

key1: value 1 key2: value 2 ...
key1: long value 1 key2: value 2 ...
key1: val 1 key2: value 2 ...

我想要的是打印此输出,以便“:”对齐:

key1: value 1      key2: value 2 ...
key1: long value 1 key2: value 2 ...
key1: val 1        key2: value 2 ...

由于

1 个答案:

答案 0 :(得分:0)

只要您能够容忍错误放置密钥,以下非常简单的解决方案就可以起作用:

cat input | column -t -s ":"

顺便说一句,如果在连接到列之前提取键,输出会更好。

使用awk,perl或python可以获得更好的结果,但是当然这在bash中是可行的,但脚本会更大(我已经开始但尚未完成)。背后的想法很简单:使用两次传递 - 第一次传递计算每个键的最大偏移量并将其存储在数组中,第二个基于偏移量的路径注入精确的空格数。