免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: joepayne
打印 上一主题 下一主题

[文本处理] 删除文本中某一列---太折腾人了 [复制链接]

论坛徽章:
3
亥猪
日期:2013-08-28 12:50:23白羊座
日期:2013-11-25 12:55:50酉鸡
日期:2014-02-12 10:46:13
11 [报告]
发表于 2013-12-23 18:59 |只看该作者
回复 6# 这个冬天不冷

感谢搭救! {:3_189:}




   

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
12 [报告]
发表于 2013-12-24 16:48 |只看该作者
  1. [root@source ~]# cat a
  2. insert into t values(1,'abc',78,'greger2343','grtg');
  3. insert into t values(2,'dgre',44,'jty','grtg');
  4. insert into t values(3,'grhg',65,'66k','ghre');
  5. insert into t values(4,'muy',68,'yj','g5');
  6. insert into t values(5,'54yn',98,'67','54h');
  7. [root@source ~]# ./abc.py 5
  8. insert into t values('1', 'abc', '78', 'greger2343');
  9. insert into t values('2', 'dgre', '44', 'jty');
  10. insert into t values('3', 'grhg', '65', '66k');
  11. insert into t values('4', 'muy', '68', 'yj');
  12. insert into t values('5', '54yn', '98', '67');
  13. [root@source ~]# ./abc.py 4
  14. insert into t values('1', 'abc', '78', 'grtg');
  15. insert into t values('2', 'dgre', '44', 'grtg');
  16. insert into t values('3', 'grhg', '65', 'ghre');
  17. insert into t values('4', 'muy', '68', 'g5');
  18. insert into t values('5', '54yn', '98', '54h');
  19. [root@source ~]# cat abc.py
  20. #!/usr/bin/env python
  21. import re
  22. import sys
  23. f=open("/root/a")
  24. lines=f.readlines()
  25. for i in lines:
  26.     k=re.search('([^(]*).*(;)',i)
  27.     valuelist=re.findall('(?<=,|\().*?(?=,|\))',i)
  28.     del valuelist[int(sys.argv[1])-1]
  29.     str1=k.group(1)+str(tuple(valuelist))+k.group(2)
  30.     print re.sub('"','',str1)
  31. f.close()
复制代码

论坛徽章:
1
射手座
日期:2014-03-10 14:24:52
13 [报告]
发表于 2013-12-24 17:19 |只看该作者
空间够的话还不如建个临时表,插进去然后再create到正式表里,少select一列不也简单吗?

论坛徽章:
3
亥猪
日期:2013-08-28 12:50:23白羊座
日期:2013-11-25 12:55:50酉鸡
日期:2014-02-12 10:46:13
14 [报告]
发表于 2013-12-24 17:29 |只看该作者
回复 13# davidbeckham921

从业务层面解决,正理!{:3_189:}


   

论坛徽章:
0
15 [报告]
发表于 2013-12-25 10:01 |只看该作者
请问一下:-vFS="[(),]",这样的话是不是遇见(),都会将数据字段分隔开?

论坛徽章:
0
16 [报告]
发表于 2013-12-25 10:16 |只看该作者
刚刚做了实验,确实-vFS="[(),]",这样的话遇见(),都会将数据字段分隔开。
我觉得那位的兄台的程序可以进一步简写一些:gawk 'BEGIN{FS=","}  {printf "%s,%s,%s,%s);\n", $1,$2,$3,$4}' data
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP