免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5738 | 回复: 14
打印 上一主题 下一主题

怎么实现截取目录下的文件名(xx201105221954.csv'),并获得其分钟数 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-05-11 15:23 |只看该作者 |倒序浏览
有一个需求如下的哟,一个目录下可能有有一个
xx201105221954.csv
我想系统一分钟调一次入数据库 但是对应的ctl文件不一样
规则是0-9的ctl文件 对应csv文件的名字中的分钟数 ,也就是点号之前的那个数字 ~~~

附上我原来的sh代码~~
#!/bin/sh

#dir
CTRLDIR=$HOME/ctrlfile
OUTDIR=$HOME/dbout
CSVDIR=$HOME/bin/csvdata
HISTROYCSV=/data/histroycsv


#DB info
DBUSER=zjnoap
DBPWD=noap
DBNAME=orcl



#into db
cd $CSVDIR

export ORACLE_BASE=/u01/app/base
export ORACLE_HOME=/u01/app/oracle
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/binPATH

#monitor
find  $PWD  -name "CellTrackKpi*.csv" -mmin +1 |xargs -i -n1 sqlldr userid=$DBUSER/$DBPWD@$DBNAME  control=$CTRLDIR/track.ctl  data={}  DIRECT=TRUE  log=$OUTDIR/track.out
find  $PWD  -name "CellTrackKpi*.csv" -mmin +1 |xargs -i -n1 mv {} $HISTROYCSV



cd ~

不知道怎么修改 ,请大神赐教 ·~~

论坛徽章:
0
2 [报告]
发表于 2011-05-11 15:24 |只看该作者
就是怎么传递参数到sqlldr命令中 ,control 和data参数

论坛徽章:
0
3 [报告]
发表于 2011-05-11 15:43 |只看该作者
和你传用户名 密码一样啊

论坛徽章:
0
4 [报告]
发表于 2011-05-11 15:49 |只看该作者
回复 3# lkk2003rty


    文件名需要做修改的,比入xx201105221954.csv 需要换成xx201105221954.bad
还有一个就是根据分钟数,配套的调 control = 0.ctl 还是1.ctl
呵呵 ~~~

论坛徽章:
0
5 [报告]
发表于 2011-05-11 16:10 |只看该作者
回复 4# pengjunhui2012


    你先用date把ctrl文件名算出来 然后用啊

论坛徽章:
0
6 [报告]
发表于 2011-05-11 16:29 |只看该作者
回复 5# lkk2003rty


    大哥 我是真的不会弄的呀,麻烦你帮我写一下  呵呵~~~~

论坛徽章:
0
7 [报告]
发表于 2011-05-11 16:35 |只看该作者
  1. super@~$ date +%Y%m%d%H%M
  2. 201105111632
  3. super@~$ a=$(date +%Y%m%d%H%M)
  4. super@~$ echo $a
  5. 201105111632
  6. super@~$
复制代码
回复 6# pengjunhui2012


    时间可以这么搞  然后你怎么用 你照着改改吧

论坛徽章:
0
8 [报告]
发表于 2011-05-11 16:47 |只看该作者
回复 7# lkk2003rty


    我的时间是文件名里读出来的呀,可是我不知道怎么去赋值的呀,~~~~~

论坛徽章:
0
9 [报告]
发表于 2011-05-11 16:56 |只看该作者
  1. super@~$ b=${a:0:4}
  2. super@~$ echo $b
  3. 2011
  4. super@~$ echo $a
  5. 201105111632
  6. super@~$
复制代码
回复 8# pengjunhui2012


    类似上面这样 ${var:pos:len}

论坛徽章:
0
10 [报告]
发表于 2011-05-11 17:00 |只看该作者
回复 9# lkk2003rty


    大哥你说的这样的,我都会 ;
麻烦你帮我在代码里补全?
find  $PWD  -name "CellTrackKpi*.csv" -mmin +1 |xargs -i -n1 sqlldr userid=$DBUSER/$DBPWD@$DBNAME  control=$CTRLDIR/track.ctl  data={}  DIRECT=TRUE  log=$OUTDIR/track.out

该目录下的名字假设为CellTrackKpi201105221954.csv   我想要实现control文件调track4.ctl ,log文件名为trck201105221954.out
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP