文档中有姓名,电话进行处理:
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格式,的就可以直接导入数据库了