【发布时间】:2013-08-02 17:26:28
【问题描述】:
如何在 awk、sed 或 bash 中正确对齐文件的列?
我的文件目前左对齐并用空格分隔。
我可以使用printf 或rev 吗?
这是我的文件的样子:
$ cat file
14,107 aaa 12,436 0.0 0 0 313 0 373
3,806,201 bbb 1,573 0.0 0 0 -25 0 -25
并且使用 rev 并没有给我想要的输出。
$rev file | column -t | rev
14,107 aaa 12,436 0.0 0 0 313 0 373
3,806,201 bbb 1,573 0.0 0 0 -25 0 -25
【问题讨论】:
-
如果
rev不适用于您的数据,我会使用 python 对其进行格式化,但是我认为您的示例不能代表您的实际问题,我不想播放修订版游戏。 -
你为什么不也显示我们的预期输出。
-
如果第一列中的项目长度不同,
rev将不起作用。填充一列然后将其剥离会起作用:rev file|sed 's/$/ ./'|column -t|rev|sed 's/^...//'。顺便说一句,我不认为它是重复的。 -
我想发布一个很好的答案。这不是重复的。链接的问题是关于固定宽度的列。在这个问题中,我们有可变宽度的列。