首页 > 编程语言 > 详细

linux使用shell 进行文件数据的读取与排序

时间:2019-06-15 18:21:08      阅读:113      评论:0      收藏:0      [点我收藏+]
#!/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

linux使用shell 进行文件数据的读取与排序

原文:https://www.cnblogs.com/Draymonder/p/11028412.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!