在列中打印 list/array
Print list/array in columns
我有 list/array,例如 $PATH 环境变量,当您执行 echo $PATH
时,它会打印
/usr/local/bin /usr/bin /bin /usr/sbin /sbin /opt/X11/bin /usr/local/MacGPG2/bin /usr/texbin /usr/local/go/bin
我希望将其格式化为如下所示的列,因此不必向上向下滚动太多。 $PATH
变量只是一个示例,我希望能够对任何列表执行此操作。
/usr/local/bin /usr/sbin /usr/local/MacGPG2/bin
/usr/bin /sbin /usr/texbin
/bin /opt/X11/bin /usr/local/go/bin
我可以使用 for 循环在新行中打印列表中的每个项目,但想不出一种方法来处理多列。我知道有一个列命令,但它似乎没有做任何事情。我已经尝试了所有选项,例如 echo $PATH | column -c 5
试试这个:
echo $PATH|sed 's/ /\
/g'|column -xt -c5
注意:在\之后一定要换行
给你:传入一个变量名称和你想要的列数
$ function columnize -a listvarname -a ncols
test (count $ncols) -eq 1; or set ncols 1
printf "%s\n" $$listvarname | \
eval paste (yes - | head -n $ncols | tr '\n' " ") | \
column -t
end
使用非特殊列表名称的演示。
$ set list /usr/local/bin /usr/bin /bin /usr/sbin /sbin /opt/X11/bin /usr/local/MacGPG2/bin /usr/texbin /usr/local/go/bin
$ columnize list 3
/usr/local/bin /usr/bin /bin
/usr/sbin /sbin /opt/X11/bin
/usr/local/MacGPG2/bin /usr/texbin /usr/local/go/bin
$ columnize list 5
/usr/local/bin /usr/bin /bin /usr/sbin /sbin
/opt/X11/bin /usr/local/MacGPG2/bin /usr/texbin /usr/local/go/bin
$ columnize list
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
/opt/X11/bin
/usr/local/MacGPG2/bin
/usr/texbin
/usr/local/go/bin
我有 list/array,例如 $PATH 环境变量,当您执行 echo $PATH
时,它会打印
/usr/local/bin /usr/bin /bin /usr/sbin /sbin /opt/X11/bin /usr/local/MacGPG2/bin /usr/texbin /usr/local/go/bin
我希望将其格式化为如下所示的列,因此不必向上向下滚动太多。 $PATH
变量只是一个示例,我希望能够对任何列表执行此操作。
/usr/local/bin /usr/sbin /usr/local/MacGPG2/bin
/usr/bin /sbin /usr/texbin
/bin /opt/X11/bin /usr/local/go/bin
我可以使用 for 循环在新行中打印列表中的每个项目,但想不出一种方法来处理多列。我知道有一个列命令,但它似乎没有做任何事情。我已经尝试了所有选项,例如 echo $PATH | column -c 5
试试这个:
echo $PATH|sed 's/ /\
/g'|column -xt -c5
注意:在\之后一定要换行
给你:传入一个变量名称和你想要的列数
$ function columnize -a listvarname -a ncols
test (count $ncols) -eq 1; or set ncols 1
printf "%s\n" $$listvarname | \
eval paste (yes - | head -n $ncols | tr '\n' " ") | \
column -t
end
使用非特殊列表名称的演示。
$ set list /usr/local/bin /usr/bin /bin /usr/sbin /sbin /opt/X11/bin /usr/local/MacGPG2/bin /usr/texbin /usr/local/go/bin
$ columnize list 3
/usr/local/bin /usr/bin /bin
/usr/sbin /sbin /opt/X11/bin
/usr/local/MacGPG2/bin /usr/texbin /usr/local/go/bin
$ columnize list 5
/usr/local/bin /usr/bin /bin /usr/sbin /sbin
/opt/X11/bin /usr/local/MacGPG2/bin /usr/texbin /usr/local/go/bin
$ columnize list
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
/opt/X11/bin
/usr/local/MacGPG2/bin
/usr/texbin
/usr/local/go/bin