Chinaunix首页 | 论坛 | 博客
  • 博客访问: 286997
  • 博文数量: 70
  • 博客积分: 485
  • 博客等级: 下士
  • 技术积分: 632
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-25 08:55
文章分类

全部博文(70)

文章存档

2014年(47)

2013年(1)

2012年(22)

我的朋友

分类: LINUX

2014-04-15 15:59:50

这个程序是实习的时候,对于实际项目中对csv文件进行提取并插入数据库中的实际操作

点击(此处)折叠或打开

  1. #!/bin/bash 
  2. #日志文件的时间格式
  3. DATE=$(date +%Y-%m-%d)
  4. #日志文件内部时间格式
  5. DATE1=$(date +%c)
  6. #判断脚本后面是否有文件名
  7. if [ $# -eq 0 ];then
  8.     echo "Usage:$0 "
  9.     echo "Usage:$0 $DATE1" >> Import.log.$DATE
  10.         exit 1
  11. elif [ $# -eq 1 ];then
  12. #将文件名赋值与FILENAME
  13.     FILENAME=$1
  14. #取得文件名.前面的部分
  15.     NAME=${FILENAME%.*}
  16.  #使用AWK来提取文件并将提取的信息重定向到临时文件tt.txt中
  17.     awk -F "," 'NR > 2{
  18.     printf("\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\", \"%s\"\n",$1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17);
  19.     }' $FILENAME > tt.txt
  20.     echo "awk awk -F "," 'NR > 2{printf("\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\"\"%s\",\"%s\",\"%s\", \"%s\",\"%s\",\"%s\",\"%s\",\"%s\"\n",$1, $2, $3, $4, $5, $6, $7, $8, $9,$10, $11, $12, $13, $14, $15, $16, $17);}' $FILENAME > tt.txt $DATE1" >>Import.log.$DATE
  21.   #使用sed来处理提取csv时产生的字符不匹配的问题
  22.     sed 's/^M//g' tt.txt>$NAME.txt
  23.     echo "sed 's/^M//g tt.txt' $DATE1" >> Import.log.$DATE
  24.   #连接数据库
  25.     db2 "connect to $DBNAME user $DBUSER using $DBPWD"
  26.     echo "db2 connect to $DBNAME user $DBUSER using $DBPWD $DATA1" >> Import.log.$DATE
  27.   
  28.   #向数据库表中插入提取的文件
  29.     db2 "import from $NAME.txt of del insert into T_TFS_TASKINFO"
  30.     echo "db2 "import from $NAME.txt of del insert into T_TFS_TASKINFO"">>Import.log.$DATE
  31.   #断开连接
  32.     db2 "connect reset"
  33.     echo "db2 connect reset $DATA1" >>Import.log.$DATE
  34. #删除临时文件tt.txt
  35.     rm -f tt.txt
  36.     echo "rm -f tt.txt $DATA1" >>Import.log.$DATE
  37.  else
  38.     echo "Usage:$0 "
  39.     echo "Usage:$0 $DATE1" >> Import.log.$DATE
  40.         exit 1
  41.  fi

阅读(9360) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~