linux使用shell 进行文件数据的读取与排序
题目
shell脚本语言编写一个从键盘输入10名学生(含自己)的姓名、 性别、学号和家庭住址,然后按照学号排序,并将排序后的结果在屏幕上按对齐 的方式打印输出的程序。
代码
- 读入数据
- 数据排序(这里用的选择排序)
- 数据输出
#!/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 进行文件数据的读取与排序的更多相关文章
- 【转】 Linux内核中读写文件数据的方法--不错
原文网址:http://blog.csdn.net/tommy_wxie/article/details/8193954 Linux内核中读写文件数据的方法 有时候需要在Linuxkernel--大 ...
- CSV文件数据如何读取、导入、导出到新的CSV文件中以及CSV文件的创建
CSV文件数据如何读取.导入.导出到新的CSV文件中以及CSV文件的创建 一.csv文件的创建 (1)新建一个文本文档: 打开新建文本文档,进行编辑. 注意:关键字与关键字之间用英文半角逗号隔开.第一 ...
- C语言进行csv文件数据的读取
C语言进行csv文件数据的读取: #include <stdio.h> #include <string.h> #include <malloc.h> #inclu ...
- linux环境: shell初始化文件, for TCSH, CSH
TCSHELL, CSHELL 配置文件 全局配置文件 /etc/csh.cshrc个人配置文件 ~/.cshrc或~/.tcshrc 参考: 1.配置你的csh/tcsh, https://wik ...
- Linux基础篇,文本数据的比较与排序:sort、uniq、comm、diff
一.sort sort命令用于将文本文件内容以行排序 sort [选项参数] [-o<输出文件>] [-t<分隔字符>] [+<起始栏位> -<结束栏位> ...
- Swift - .plist文件数据的读取和存储
每次在Xcode中新建一个iOS项目后,都会自己产生一个.plist文件,里面记录项目的一些配置信息.我们也可以自己创建.plist文件来进行数据的存储和读取. .plist文件其实就是一个XML格式 ...
- HDF 文件数据的读取
http://www.cams.cma.gov.cn/cams_973/cheres_docs/cheres_doc_sat.modis.1b.html一. HDF文件格式 1.概述 HDF 是美国国 ...
- Linux通过Shell对文件自动进行远程拷贝备份
在执行计划任务拷贝文件的时候,用scp命令需要输入密码,这里用公共密钥的方式实现密码的自动输入. 具体操作: 要求:把192.168.0.2机上的test.tar拷贝到192.168.0.3机器的上 ...
- linux下格式化json文件数据
一.使用 python -m json.tool cat test.json | python -m json.tool 二.jq格式化 在web 2.0时代json这种直观.灵活.高效数据格式基本已 ...
随机推荐
- 网络编程.iocp
1.(20191212)查到的一些资料:java从 JDK7开始 引入AOI(即 NIO2).然后 实现 IOCP使用的是 AsynchronousChannelGroup.AsynchronousS ...
- 安装mysql5.6-centOs7
安装mysql mysql,下载地址:https://dev.mysql.com/downloads/mysql/ 安装参考链接:https://segmentfault.com/a/11900000 ...
- sql语句传参数
SET @register = '; SET @unregister = '; UPDATE cw_base_register SET register = @register, unregister ...
- 极*Java速成教程 - (6)
Java高级特性 String String是Java中的字符串类型,字符串类型在内存中是一个不可变的对象.如果要对字符串对象进行修改,如果是较少的修改可以使用+运算符,Java会自动进行优化,但如果 ...
- uboot环境变量
一. uboot运行时环境变量分布 1.1. 环境变量有2份,一份在Flash中,另一份在DDR中.uboot开机时一次性从Flash中读取全部环境变量到DDR中作为环境变量的初始化值,然后使用过程中 ...
- [LeetCode] 65. 有效数字
题目链接 : https://leetcode-cn.com/problems/valid-number/ 题目描述: 验证给定的字符串是否可以解释为十进制数字. 例如: "0"` ...
- PyCharm控制台python shell 和 IPython shell的切换
1. IPython介绍 IPython 是一个 python 的交互式 shell,比默认的python shell 好用得多,支持变量自动补全,自动缩进,支持 bash shell 命令,内置了许 ...
- Proxy does not work using sudo in Debian
To resolve this issue you can add Defaults env_keep += "http_proxy https_proxy" to your /e ...
- zprofiler工具
转自:zprofiler三板斧解决cpu占用率过高问题 此工具为阿里自产的profiler工具,在其他文章中看到有用此工具进行性能问题定位的.在此转载文章学习一下. 上周五碰到了一个线上机器cpu占用 ...
- OneinStack定时同步备份数据库/网站至七牛云存储方法
无论我们用WEB面板,还是用一键脚本安装环境建站,只要一旦我们开始用VPS.服务器,最为关键的就是服务器中的数据.因为大部分VPS.服务器商家都是无管理型主机,任何的安装和维护都需要我们自行管理.即便 ...