shell终端,使用3个命令制作表格式输出(使用命令case,echo,awk)
发布网友
发布时间:2023-04-22 09:18
我来回答
共1个回答
热心网友
时间:2023-10-18 22:33
先上 效果。。。
本来只是想写个在命令行,表格化输出菜单的脚本,写着写着,就写成了通用型的。
脚本的核心,是awk接收输入文本,再格式化输出,为什么不用其它脚本和命令来写呢?
1,shell 在所有linux上通用,不用编译,不用额外安装其它,直接运行,
2,shell 很多命令并不是所有linux都有预装,大量的使用echo,for会降低很多效率,而awk里执行for,变量传递,效率很高。并且只用了echo,case,awk三个命令。大大提高了脚本的通用性。
使用:可以像 column 命令一样的简单使用,draw_table.sh <file.txt 或者 echo -e "A\tB\na\tb"|draw_table.sh
每列以"\t"分隔,每行以"\n"分隔,单列行文本整行居中,默认以shell配色,以"+-|" 为边框,
当然也可以自定义边框,第一个参数是设置边框,像这样 "-1",像这样"%+++++++++,---|||",第一个"%"是参数引导,从第2 位开始,边框以小键盘1~9的九宫格标位,比如第7位是左上角,第9位是右上角,第8位是上边框列分隔,第4位是左边框行分隔。。。特别说明的是,第10位只是文本行空白填充,一般用" ",11-13是行的左中右边填充(分隔)线,14-16是列的上中下边填充(分隔)线。
还可自定义颜色,第二个参数是设置颜色,像这样"-2,-2,-2",像这样"-blue,-blue,-blue",这样"\033[34m,\033[34m,\033[34m",或者"-2,-blue,\033[34m",这是简易模式,以"," 分隔,第1是边框交叉点色,第2是字体色,第3是填充线色。还有完整模式,像这样 "-2,-2,-2,-2........"一共16位,以","分隔,对应边框的位标。
下面是脚本: