#!/bin/bash
declare -a username
declare -a sex
declare -a usercode
declare -a userpath
i=0
# scan data from keyboard or pipe
# cat ../test | while read line
for line in `cat ../test`;
do
index=`expr $i / 4`
pos=`expr $i % 4`
if [ $pos -eq 0 ]
then
username[$index]=${line}
elif [ $pos -eq 1 ]
then
sex[$index]=${line}
elif [ $pos -eq 2 ]
then
usercode[$index]=${line}
else
userpath[$index]=${line}
fi
# echo $i, ${usercode[$i]}
# echo ${username[$i]}, ${sex[$i]}, ${usercode[$i]}, ${userpath[$i]}
i=$(($i+1))
done
arr=(0 1 2 3 4 5 6 7 8 9)
i=0
j=0
# sort it with ascending
while [ $i -lt 10 ]; do
j=$(($i+1))
while [ $j -lt 10 ] ; do
# echo ${usercode[${arr[$j]}]} , ${usercode[${arr[$i]}]}
if [ ${usercode[${arr[$j]}]} -lt ${usercode[${arr[$i]}]} ]
then
tmp=${arr[$j]}
arr[$j]=${arr[$i]}
arr[$i]=$tmp
fi
j=$(($j+1))
done
i=$(($i+1))
done
# echo ${arr[@]}
i=0
while [ $i -lt 10 ]; do
index=${arr[$i]}
printf "%8s %6s %4s %10s\n" ${usercode[$index]}, ${username[$index]}, ${sex[$index]}, ${userpath[$index]}
i=$(($i+1))
done
原文:https://www.cnblogs.com/Draymonder/p/11028412.html