我以键值对的形式输出命令:
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 ...
由于
答案 0 :(得分:0)
只要您能够容忍错误放置密钥,以下非常简单的解决方案就可以起作用:
cat input | column -t -s ":"
顺便说一句,如果在连接到列之前提取键,输出会更好。
使用awk,perl或python可以获得更好的结果,但是当然这在bash中是可行的,但脚本会更大(我已经开始但尚未完成)。背后的想法很简单:使用两次传递 - 第一次传递计算每个键的最大偏移量并将其存储在数组中,第二个基于偏移量的路径注入精确的空格数。