Text-Processing
如何將 cli 輸出調整為漂亮的列
假設我有一些 CLI 單行,它輸出一些帶有空格分隔部分的文本行。這些部分在邏輯上應該是列,但由於文本寬度,它看起來不是這樣。
我怎樣才能自動格式化這樣的輸出以使其成為漂亮的列?
例如,我有類似的輸出
Alice param1 param2345 32768 50 16 Bob param2345 param1 512 10 1 _debug_user_ param0 param0 0 0 0
我想讓它像
Alice param1 param2345 32768 50 16 Bob param2345 param1 512 10 1 _debug_user_ param0 param0 0 0 0
使用 Linux
column(1)
:column -t <file.txt
使用 BSD
rs(1)
:rs 0 6 <file.txt
與
awk(1)
:awk 'FNR==NR { for(i=1; i<NF; i++) if(length($i)>w[i]) w[i]=length($i) } FNR!=NR { for(i=1; i<NF; i++) $i=sprintf("%-" (w[i]+1) "s", $i); print }' \ file.txt file.txt