如何使用paste(1)排列列?或者如何使对齐表合并shell中的行?

sna*_*nap 9 unix linux bash shell scripting

我想合并线条,使合并的线条在同一边界上对齐.当所有行在相同的选项卡边界处相遇时,UNIX paste(1)可以很好地完成此操作,但是当行的大小不同时(在文件中将行合并到其中),文本会出现问题.

具有所需效果的糊剂(1)的实例:

$ echo -e "a\nb\nccc\nd" | paste - -
a       b
ccc     d
Run Code Online (Sandbox Code Playgroud)

膏剂(1)的实例具有不希望的效果:

$ echo -e "a\nb\ncccccccccccc\nd" | paste - -
a       b
cccccccccccc    d
Run Code Online (Sandbox Code Playgroud)

请注意第二列如何排列.我希望'b'与'd'对齐,这需要一个额外的标签.不幸的是我相信这是粘贴实用程序的限制,所以如果有人知道如何获得上面所需的效果,我很乐意听到它.

小智 10

查看实用程序...

$ echo -e "a\nb\ncccccccccccc\nd" | paste - - | column -t
a             b
cccccccccccc  d
Run Code Online (Sandbox Code Playgroud)