linux shell脚本:读取csv文件到(数组)变量

linux shell脚本:读取csv文件到(数组)变量

一、构造csv文件

创建excel文件,分别在不同列输入不同的变量值。如下图示例,然后文件另存为ip.csv文件,上传到linux服务器,并赋予相关用户权限。
本例以使用不同用户连接不同ip的系统库举例
以连接串字符举例

二、注意处理CSV文件每一行末尾的多余字符(换行符之类,会影响到变量值)

CSV格式文件每个记录位于单独的一行上,每一行用回车换行符进行分割(\r\n)
使用tr -d ‘\r’ <原文件> 新文件 命令 处理文件

tr -d '\r' <ip.csv> ip_pure.csv

三、读取CSV文件到变量值中

#/bin/bash
file="ip_pure.csv"
default_db=postgres
port=8000

function get_ip(){
#检查CSV文件是否存在
if [ ! -f "$file" ]; then
	echo "CSV file doesn't exist"
	exit
fi
#读取CSV文件到数组变量中
i=0
ipnum=0
while IFS=, read -r ip_tmp user_tmp pwd_tmp; do
	dbip[$i]=${ip_tmp}
	dbuser[$i]=${user_tmp}
	dbpwd[$i]=${pwd_tmp}
	i=`expr ${i} + 1`
	ipnum=${i}
done < "$file"
##使用数组变量中的值
for ((i=0;i<${ipnum};++i));
do
	host_ip=${dbip[$i]}
	dba_user=${dbuser[$i]}
	dba_pw=${dbpwd[$i]}
	#连接串变量
	gsql_connect="gsql -h ${host_ip} -d ${default_db} -p ${port} -U ${dba_user} -W ${dba_pw} -c "
	##你可以接着做其他操作
done
}
get_ip
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值