+ -
当前位置:首页 → 问答吧 → 在线求助一个unix脚本的写法

在线求助一个unix脚本的写法

时间:2011-04-21

来源:互联网

目前需要导入一组文本数据至数据库表

文本格式如下
xxx|yyy|zzz
.....

想将文本通过脚本改成
xxx|yyy|zzz|yymmdd5000
..................|yymmdd5001
.........
..................|yymmddnnnn

起始值可以为5000,递增按照每行增1的决定
yymmdd取日期的后6位即可


之前想在select导出和sqlldr导入中实现,可是发现找不到方法,无奈之下
只好用脚本来实现,请哪位帮忙,这里谢过啦

作者: kurapikar   发布时间: 2011-04-21

回复 kurapikar
  1. awk 'BEGIN{n=5000}{printf $0"|";system("date +%y%m%d"n++)}' file
复制代码

作者: where27   发布时间: 2011-04-21

回复 kurapikar
  1. echo "xxx|yyy|zzz
  2. xxx|yyy|zzz
  3. xxx|yyy|zzz
  4. xxx|yyy|zzz" |awk 'BEGIN{now=strftime("%y%m%d");x=5000}{print $0"|"now x++}'
  5. xxx|yyy|zzz|1104205000
  6. xxx|yyy|zzz|1104205001
  7. xxx|yyy|zzz|1104205002
  8. xxx|yyy|zzz|1104205003
复制代码

作者: yinyuemi   发布时间: 2011-04-21

十分感谢~~偶awk不怎么熟

作者: kurapikar   发布时间: 2011-04-21

回复 kurapikar
  1. !#/bin/bash
  2. n=5000
  3. while read line
  4. do
  5. echo $line"|"`date "+%y%m%d"`$((n++)) >>outputfile
  6. done <file
复制代码

作者: yinyuemi   发布时间: 2011-04-21

回复 kurapikar


    原始的需求是啥 俺感觉 可以用sqlldr捣鼓的说

作者: lkk2003rty   发布时间: 2011-04-21