[英]Bash print long list as columns
我有一個名為 nameVar 的數組,如下所示: 'server1' 'server2' 'server3' 'server4' 使用以下代碼:
echo "Which F5 to connect:"
for f5 in ${!nameVar[*]}
do
printf "%4d: %s\n" $f5 ${nameVar[$f5]}
done
我收到一個編號列表,其中包含數組中的每個項目。
0: server1
1: server2
2: server3
我的問題是,如果我的數組有很多項目,output 太長,我必須向上滾動才能看到開頭。
如果我使用 \t 而不是 \n,則 output 由於長度不同(例如,有些名稱很長,如 server1-eastus-2021,有些名稱較短,如 server002)。
我怎樣才能得到漂亮的柱狀 output?
| 0: server1 | 3: server1-eastus-2021
| 1: server2 | 4: server5
| 2: server3 | 5: server6
假設您的列表是單列,您可以只 pipe 到less
。
但是,我相信您所追求的pretty
外觀可以使用pr
獲得
DESCRIPTION
Paginate or columnate FILE(s) for printing.
例如,如果您想要 2 或 3 列,您可以使用
$ pr -2t input_file #2 columns
$ pr -3T input_file #3 columns
等等。
$ echo "0: server1
1: server2
2: server3
3: server4
4: server5
5: server6" | pr -2T
0: server1 3: Serer4
1: server2 4: server5
2: server3 5: server6
或如 David C 所述。 Rankin 和更多像您預期的 output,您可以 go 以獲得更漂亮的外觀。
$ .... | pr -2 -S" | " -T
0: server1 | 3: server4
1: server2 | 4: server5
2: server3 | 5: server6
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.