zoukankan      html  css  js  c++  java
  • linux使用shell 进行文件数据的读取与排序

    题目

    shell脚本语言编写一个从键盘输入10名学生(含自己)的姓名、 性别、学号和家庭住址,然后按照学号排序,并将排序后的结果在屏幕上按对齐 的方式打印输出的程序。

    代码

    1. 读入数据
    2. 数据排序(这里用的选择排序)
    3. 数据输出
    #!/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
    " ${usercode[$index]}, ${username[$index]}, ${sex[$index]}, ${userpath[$index]}
        i=$(($i+1))
    done
    
  • 相关阅读:
    array.prototype.slice.call(arguments)
    axios 的坑
    Cannot read property 'range' of null
    IDEA导入Eclipse的JavaEE项目详细步骤链接
    使用 yarn 安装时,报错node_modules ode sass:Command failed.
    axios post请求非json传参设置
    vue-cli 3.x跨域配置
    idea错误: 找不到或无法加载主类
    Git 上传新项目
    Windows下生成SSH密钥
  • 原文地址:https://www.cnblogs.com/Draymonder/p/11028412.html
Copyright © 2011-2022 走看看