用于正确对齐列的 Shell 脚本

use*_*592 6 bash shell

我有一个(3 列)制表符分隔的文件,例如:

activity_log    manager Manager
reserve_rm_hreserver_rm_log manager Manager
mo  apprv_mgr1  Approving Manager
wrview  manager Manager
Run Code Online (Sandbox Code Playgroud)

我想让列正确对齐;在这种情况下:

activity_log                  manager      Manager
reserve_rm_hreserver_rm_log   manager      Manager
mo                            apprv_mgr1   Approving Manager
wrview                        manager      Manager
Run Code Online (Sandbox Code Playgroud)

毫无疑问,这可以通过 awk 实现,通过扫描每列中最长的字符串,并使用它来格式化列打印。我可以做到。

但我确信一定有一个简单的方法可以更轻松地做到这一点。我对吗?

mau*_*uro 4

这应该有效:

$ column -t myfile.txt
Run Code Online (Sandbox Code Playgroud)

你可以使用不同的字符来填写(man column是你的朋友)