SED小用了

昨天一个客户又有一大堆的数字,用EXECL保存发来,要我提取系统里的数据,因上次有类似提取过一次,不过忘了保存步骤了,只能重头再做,这一次记录下。
类似为
 
181TF010A0229021   
181TF010B0229021   
528304237   
528304240   
528433591   
528563457   
528613338   
528613344   
528613348   
528613350   
528652286   
528682242   
528682245   
528682248   
529374237   
529374241   
529374242 
.......
非常多,也有重复的列在这之内,因考虑到SQL只能用in ,但用in 只能条件为1000个之下,于是我在LINUX环境下将文本格式下,再输出。

vi test.sql

:%s/^/','/   替换

sed s/[[:space:]]//g  test.sql 删除空格

sed 'N;s/.*\n//' text.sql > text.txt 删除重复行

sed -n  '$=' text.txt  统计行数

sed -n '1,800p' text.txt >text.txt1 截取行数

tr   -s   '\r\n '   ' '   < text.txt2 >bl.sql2 删除移动

sed s/[[:space:]]//g  bl.sql2 > bl.sql22  删除空格

之后再取下**.sql22的文件用UltraEdit文件打开,再复制到PL/SQL进行操作,就可完成。

select s.vsl "船名",
       s.vvd "航次",
       v.vsl_name "中文名",
       v.vsl_eng_name "英文名",
       s.bl_no "提单号",
       s.cntr || s.chk_dgt "箱号",
       s.eqp_type "箱型",
       s.opr "箱主",
       s.activity "装卸类型"
  from stow_hist s, vessel v
 where s.vsl = v.vsl
   and s.bl_no in ( )

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15242702/viewspace-666827/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/15242702/viewspace-666827/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值