收藏文章 楼主

shell 处理文档信息导入数据库-自动化运维linux

版块:自动化运维linux   类型:普通   作者:小绿叶技术博客   查看:1136   回复:0   获赞:0   时间:2020-07-18 23:08:27

文档中有姓名,电话进行处理:

1.txt 文件中有:

名称 称号 联系电

www ddd 11111

www ddd 11111

...... ...... ........





#!/bin/bash

name=`cat 1.txt | awk -F" " '{print $1}'` # 查看1.txt 文件,awk -F" " awk字段处理,-F" " 以空格为分隔符(间隔字段列),打印第一列

jhname=( # 定义数组内容为:查看第一个字段的数据的变量$name   (分隔符是空格或者换行)

$name

)

echo "总元素,名字依次为:" ${jhname[*]}

wh=`cat 1.txt | awk -F" " '{print $2}'` # {print $2} 打印第二列,称号 

jhwh=(

$wh

)

echo "总元素,外号依次为:" ${jhwh[*]}

ted=`cat 1.txt | awk -F" " '{print $3}'`

jhted=(

$ted

)

echo "总元素,电话依次为:" ${jhted[*]}  

echo "总人数为:${#jhname[*]}"

max=${#jhname[*]}

for((i=1;i<=$max;i++))

do

echo -e "

('$i','${jhname[$i]}','${jhwh[$i]}','${jhted[$i]}'),

" >> 1.sql

done # 结束循环,${jhname[$i]} 打印数组变量,有循环 $i 来指定数组角标,数数依次打印所有元素

# echo -e 开启特殊字符转换; \ 指定不被解析的符号,此处将双引号转换不被解析

sed -i "1 i\INSERT INTO eisc(id,name,wh,ted) VALUES" 1.sql

# 一行插入数据

sed -i "1 i\create table eisc(id int,name varchar(225),wh varchar(255),ted varchar(255))" 1.sql

# 插入数据前创建表。创建表结束,要加符号  ; 

sed -i "1 i\use ic_eisc_cn" 1.sql # 首先进入数据库



########################################################

然后查看文件 1.sql 

INSERT INTO eisc(id,name,wh,ted) VALUES

(1,ddd,www),

(2,ddd,www),

需要删除最后一行中的  逗号;结尾是不需要加逗号的;且第一个插入字段的 VALUES 与值必须再同一行且没有空格;记事本需要另存为utf8格式,的就可以直接导入数据库了


提供企业建站服务,免费网防系统,提交信息登录 http://yundun.ddoss.cn 邮箱: proposal@ddoss.cn 
回复列表
默认   热门   正序   倒序

回复:shell 处理文档信息导入数据库-自动化运维linux

头像

用户名:

粉丝数:

签名:

资料 关注 好友 消息