linux shell 脚本 解析固定格式的文件导入数据库
假设文件名叫word.txt要解析这个文件然后每个[]里面是一个字段然后录入数据库里~~~~~~word.txt的格式我发图片了大概是这样[2012-03-0411:20...
假设文件名叫word.txt 要解析这个文件
然后每个[]里面是一个字段然后录入数据库里~~~~~~
word.txt的格式我发图片了
大概是这样
[2012-03-04 11:20:24] [17] [357242043237517]
[2012-03-04 11:20:24] [17] [357242043237517]
[2012-03-04 12:52:20] [17] [359372041227505]
[2012-03-04 12:52:20] [17] [359372041227505]
[2012-03-04 13:05:07] [27] [354705041522190]
[2012-03-04 13:05:10] [27] [354705041522190]
[2012-03-04 13:56:16] [17] [359372041227505]
[2012-03-04 13:56:16] [17] [359372041227505]
[2012-03-04 16:27:07] [12] [860173013572940]
[2012-03-04 16:44:51] [17] [359372041227505]
[2012-03-04 16:44:51] [17] [359372041227505]
[2012-03-04 18:24:56] [12] [358347040242987]
[2012-03-04 20:10:23] [27] [860645000059213]
[2012-03-04 20:39:27] [17] [359372041227505]
[2012-03-04 20:39:27] [17] [359372041227505]
小弟我从来没写过shell 现在求各位帮忙啊~~高分送上
我的QQ:1423六八4022 展开
然后每个[]里面是一个字段然后录入数据库里~~~~~~
word.txt的格式我发图片了
大概是这样
[2012-03-04 11:20:24] [17] [357242043237517]
[2012-03-04 11:20:24] [17] [357242043237517]
[2012-03-04 12:52:20] [17] [359372041227505]
[2012-03-04 12:52:20] [17] [359372041227505]
[2012-03-04 13:05:07] [27] [354705041522190]
[2012-03-04 13:05:10] [27] [354705041522190]
[2012-03-04 13:56:16] [17] [359372041227505]
[2012-03-04 13:56:16] [17] [359372041227505]
[2012-03-04 16:27:07] [12] [860173013572940]
[2012-03-04 16:44:51] [17] [359372041227505]
[2012-03-04 16:44:51] [17] [359372041227505]
[2012-03-04 18:24:56] [12] [358347040242987]
[2012-03-04 20:10:23] [27] [860645000059213]
[2012-03-04 20:39:27] [17] [359372041227505]
[2012-03-04 20:39:27] [17] [359372041227505]
小弟我从来没写过shell 现在求各位帮忙啊~~高分送上
我的QQ:1423六八4022 展开
3个回答
展开全部
#!/bin/sh
username="yourusername"
password="yourpassword"
dbname="yourdbname"
tablename="yourtablename"
cat word.txt | while read line
do
{
field1=`echo $line | tr -d '['| tr -d ']'| cut -d' ' -f1-2}`
field2=`echo $line | tr -d '['| tr -d ']'| cut -d' ' -f3}`
field3=`echo $line | tr -d '['| tr -d ']'| cut -d' ' -f4}`
###################################################数据库输入
temp=`echo "describe $tablename" | mysql -u $username -p$password "$dbname" | sed '1d' | awk '{print $1}'`
head="INSERT INTO $tablename VALUES ("
tail=");"
tt=`
for loop in $temp
do
eval echo "\'"\\$$loop"\',"
done
`
value=`echo "$head$tt$tail"`
sql=`echo "$value" | sed 's/,)/)/g'`
echo "$sql" | mysql -u $username -p$password "$dbname"
}
done
####数据库自己建立,库名,表名,用户名,密码在开头自己定义,
###你数据库字段名分别为field1 field2 field3
username="yourusername"
password="yourpassword"
dbname="yourdbname"
tablename="yourtablename"
cat word.txt | while read line
do
{
field1=`echo $line | tr -d '['| tr -d ']'| cut -d' ' -f1-2}`
field2=`echo $line | tr -d '['| tr -d ']'| cut -d' ' -f3}`
field3=`echo $line | tr -d '['| tr -d ']'| cut -d' ' -f4}`
###################################################数据库输入
temp=`echo "describe $tablename" | mysql -u $username -p$password "$dbname" | sed '1d' | awk '{print $1}'`
head="INSERT INTO $tablename VALUES ("
tail=");"
tt=`
for loop in $temp
do
eval echo "\'"\\$$loop"\',"
done
`
value=`echo "$head$tt$tail"`
sql=`echo "$value" | sed 's/,)/)/g'`
echo "$sql" | mysql -u $username -p$password "$dbname"
}
done
####数据库自己建立,库名,表名,用户名,密码在开头自己定义,
###你数据库字段名分别为field1 field2 field3
展开全部
什么数据库(oracle,db2)?啥平台(aix?)尽量提供全面信息呃,shell的版本有时候也得说明,楼上的差不多吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
引用cantholdit的回答:
#!/bin/sh
username="yourusername"
password="yourpassword"
dbname="yourdbname"
tablename="yourtablename"
cat word.txt | while read line
do
{
field1=`echo $line | tr -d '['| tr -d ']'| cut -d' ' -f1-2}`
field2=`echo $line | tr -d '['| tr -d ']'| cut -d' ' -f3}`
field3=`echo $line | tr -d '['| tr -d ']'| cut -d' ' -f4}`
###################################################数据库输入
temp=`echo "describe $tablename" | mysql -u $username -p$password "$dbname" | sed '1d' | awk '{print $1}'`
head="INSERT INTO $tablename VALUES ("
tail=");"
tt=`
for loop in $temp
do
eval echo "\'"\\$$loop"\',"
done
`
value=`echo "$head$tt$tail"`
sql=`echo "$value" | sed 's/,)/)/g'`
echo "$sql" | mysql -u $username -p$password "$dbname"
}
done
####数据库自己建立,库名,表名,用户名,密码在开头自己定义,
###你数据库字段名分别为field1 field2 field3
#!/bin/sh
username="yourusername"
password="yourpassword"
dbname="yourdbname"
tablename="yourtablename"
cat word.txt | while read line
do
{
field1=`echo $line | tr -d '['| tr -d ']'| cut -d' ' -f1-2}`
field2=`echo $line | tr -d '['| tr -d ']'| cut -d' ' -f3}`
field3=`echo $line | tr -d '['| tr -d ']'| cut -d' ' -f4}`
###################################################数据库输入
temp=`echo "describe $tablename" | mysql -u $username -p$password "$dbname" | sed '1d' | awk '{print $1}'`
head="INSERT INTO $tablename VALUES ("
tail=");"
tt=`
for loop in $temp
do
eval echo "\'"\\$$loop"\',"
done
`
value=`echo "$head$tt$tail"`
sql=`echo "$value" | sed 's/,)/)/g'`
echo "$sql" | mysql -u $username -p$password "$dbname"
}
done
####数据库自己建立,库名,表名,用户名,密码在开头自己定义,
###你数据库字段名分别为field1 field2 field3
展开全部
你这脚本运行不起来 编译报错 不信你试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询