shell脚本逐行读取文本内容并拆分,根据条件筛选写入不同文件

本文介绍如何编写一个名为Organizer的shell脚本,用于整理Students文本文件中的学生信息。脚本根据学生的省份将信息分为北方(华北、东北、西北)和南方两个文件,错误信息则存入ErrStudentsInfo文件。每行信息按“姓名;专业;省份”格式,通过分号拆分后,判断省份归属。

编写如下shell脚本

创建名为Organizer的shell脚本用以整理学生数据:假设有一名为Students的文本文件存放学生基本信息,每一行的格式为:“姓名;专业;省份”,该脚本能够将学生信息依据省份导入北方和南方个两个不同的文件(华北、东北、西北地区为北方,其余为南方),文件名分别是NorthStudents和SouthStudents,如果省份信息存在错误则放入另一个文件ErrStudentsInfo,内容保持不变。

#!/bin/bash
function find(){
cat Students.txt |while read line
do
#	echo "$line"
#拆分字符串到数组
str=$line
OLD_IFS="$IFS"
IFS=";"
arr=($str)
IFS="$OLD_IFS"

#为自定义变量赋值
PARAM=${arr[2]}
case $PARAM in
	"山东"| "山西"| "陕西"| "河北"| "河南"| "甘肃"| "宁夏"| "青海"| "西藏"| "新疆"| "内蒙古"| "辽宁"| "吉林"| "黑龙江"| "北京"| "天津")
	echo "$line">>$NorthStudents
	;;
	"江苏"| "安徽"| "湖南"| "湖北"| "四川"| "云南"| "贵州"| "广东"| "广西"| "福建"| "江西"| "浙江"| "台湾"| "海南"| "上海"| "香港"| "澳门")
	echo "$line">>$SouthStudents
	;;
	*)
	echo "$line">>$ErrStudentsInfo
esac

done
}


find

本次操作最为重要的是把每一行其中得省份信息读取出来即

#拆分字符串到数组
str=$line
OLD_IFS="$IFS"
IFS=";"
arr=($str)
IFS="$OLD_IFS"

#为自定义变量赋值
PARAM=${arr[2]}

姓名;专业;省份
根据其中的分号把一行信息划分为3个字符串存入数组当中,再把其中得省份信息读取出来进行判断。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

stdlibLOL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值