0

我有一个键值对形式的命令输出:

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 ...

谢谢

4

1 回答 1

0

只要您可以容忍错误放置键,以下非常简单的解决方案就可以工作:

cat input | column -t -s ":"

顺便说一句,如果在管道到列之前提取键,输出看起来会更好。

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

于 2012-08-15T14:29:40.003 回答