我有兴趣输出当前年度季度的表示,以及上个月的年度季度。
如果今天是 2012 年 1 月 1 日,我想得到
2012q1
Run Code Online (Sandbox Code Playgroud)
和
2011q4
Run Code Online (Sandbox Code Playgroud)
作为各自的输出。
我有一些来自 Unix 管道的制表符分隔数据。我想将这些数据格式化为一个紧凑的人类可读表格。
如何将这些制表符展开为空格,并根据字段数据的宽度自动设置制表位?
例如,我的假设generate_tsv
脚本可能会产生(我\t
用来表示实际的制表符)-
alpha\t1\t0.21085026\tok
beta\t4096\t0.0\tok
gamma\t\t-1.0\tinvalid
Run Code Online (Sandbox Code Playgroud)
使用| expand -t 12
,我会得到:
alpha 1 0.21085026 ok
beta 4096 0.0 ok
gamma -1.0 invalid
Run Code Online (Sandbox Code Playgroud)
但我想要更紧凑的东西(所以正好有两个空格分隔列),如下所示:
alpha 1 0.21085026 ok
beta 4096 0.0 ok
gamma -1.0 invalid
Run Code Online (Sandbox Code Playgroud)
正如@jw013 所建议的那样,| column -t -s $'\t'
很接近,但并不完全正确,因为它会折叠空单元格:
alpha 1 0.21085026 ok
beta 4096 0.0 ok
gamma -1.0 invalid
Run Code Online (Sandbox Code Playgroud)