6 Star 7 Fork 3

calvinwilliams / exsh

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
txtable 2.14 KB
一键复制 编辑 原始数据 按行查看 历史
czr 提交于 2019-03-25 13:56 . init
# txtable v1.0.0
# Copyright by calvin 2015
# ChangeLog : v1.0.0 2015-07-16 Create
TITLE_FLAG=0
while getopts ":t" ARG ; do
case $ARG in
t)
TITLE_FLAG=1
;;
esac
done
COLCT=0
ROWNO=0
while read LINE ; do
ROWNO=`expr $ROWNO + 1`
LINE_ARRAY[$ROWNO]=$LINE
COLNO=0
for FIELD in ${LINE_ARRAY[$ROWNO]} ; do
COLNO=`expr $COLNO + 1`
if [ $COLNO -gt $COLCT ] ; then
LEN_ARRAY[$COLNO]=0
RIGHT_ALIGN_FLAG[$COLNO]=1
fi
LEN=`echo "$FIELD" | wc -L`
if [ $LEN -gt ${LEN_ARRAY[$COLNO]} ] ; then
LEN_ARRAY[$COLNO]=$LEN
fi
expr match "$FIELD" "[0-9][0-9]*$" >/dev/null
if [ $? -ne 0 ] && [ ${RIGHT_ALIGN_FLAG[$COLNO]} -ne 0 ] ; then
RIGHT_ALIGN_FLAG[$COLNO]=0
else
RIGHT_ALIGN_FLAG[$COLNO]=1
fi
done
if [ $COLNO -gt $COLCT ] ; then
COLCT=$COLNO
fi
done
ROWCT=$ROWNO
TITLE_STDOUT=""
COLNO=0
if [ $COLCT -gt 0 ] ; then
TITLE_STDOUT="${TITLE_STDOUT}+"
fi
while [ $COLNO -lt $COLCT ] ; do
COLNO=`expr $COLNO + 1`
NO=1
TITLE_STDOUT="${TITLE_STDOUT}-"
while [ $NO -le ${LEN_ARRAY[$COLNO]} ] ; do
TITLE_STDOUT="${TITLE_STDOUT}-"
NO=`expr $NO + 1`
done
TITLE_STDOUT="${TITLE_STDOUT}-+"
done
CONTENT_STDOUT=""
ROWNO=0
while [ $ROWNO -lt $ROWCT ] ; do
ROWNO=`expr $ROWNO + 1`
COLNO=0
if [ $COLCT -gt 0 ] ; then
CONTENT_STDOUT="${CONTENT_STDOUT}|"
fi
for FIELD in ${LINE_ARRAY[$ROWNO]} ; do
COLNO=`expr $COLNO + 1`
CONTENT_STDOUT="${CONTENT_STDOUT} "
if [ $COLNO -gt $COLCT ] ; then
break
fi
if [ ${RIGHT_ALIGN_FLAG[$COLNO]} -eq 1 ] ; then
printf -v BUF "%*s |" ${LEN_ARRAY[$COLNO]} $FIELD
CONTENT_STDOUT="${CONTENT_STDOUT}${BUF}"
else
printf -v BUF "%-*s |" ${LEN_ARRAY[$COLNO]} $FIELD
CONTENT_STDOUT="${CONTENT_STDOUT}${BUF}"
fi
done
while [ $COLNO -lt $COLCT ] ; do
COLNO=`expr $COLNO + 1`
NO=1
CONTENT_STDOUT="${CONTENT_STDOUT} "
printf -v BUF "%*s |" ${LEN_ARRAY[$COLNO]} " "
CONTENT_STDOUT="${CONTENT_STDOUT}${BUF}"
done
if [ $COLCT -gt 0 ] && [ $ROWNO -lt $ROWCT ] ; then
CONTENT_STDOUT="${CONTENT_STDOUT}\n"
fi
if [ $ROWNO -eq 1 -a $TITLE_FLAG -eq 1 ] ; then
CONTENT_STDOUT="${CONTENT_STDOUT}${TITLE_STDOUT}\n"
fi
done
echo "$TITLE_STDOUT"
echo -e "$CONTENT_STDOUT"
echo "$TITLE_STDOUT"
Shell
1
https://gitee.com/calvinwilliams/exsh.git
git@gitee.com:calvinwilliams/exsh.git
calvinwilliams
exsh
exsh
release

搜索帮助