免费注册 查看新帖 |

Chinaunix

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

求助:文件处理:分割符 [复制链接]

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
21 [报告]
发表于 2011-06-22 02:52 |只看该作者
回复 20# 红狐狸
  1. echo '123, "11"1", "aaa, bbb, 1", "", 77, "12"2",' |\
  2. awk '{$0=gensub(/("[^",]*)"([^",]*")/,"\\1 \\2","g",$0)
  3.     l=split($0,a,"\"")
  4.     for(i=1;i<=l;i++) $0=i==1?a[1]:$0"\""(!(i%2)?gensub(/, /," ","g",a[i]):a[i])
  5.     }1'
  6. 123, "11 1", "aaa bbb 1", "", 77, "12 2",
复制代码

论坛徽章:
0
22 [报告]
发表于 2011-06-22 09:41 |只看该作者
也许你应该考虑导出格式,而不是导出后想尽办法去重新处理

  1. ,"abc"cd'ef,,',,"",  首尾,号之间是一个字段的值,这样的导出格式会让人抓狂的

  2. 我对db2不了解,不过,它肯定可以设定导出格式的,比如分隔符、字段值是否加引号之类的
  3. 你可以针对你的数据存储内容,来设定相应的导出格式,也利于后期处理
复制代码

论坛徽章:
0
23 [报告]
发表于 2011-06-22 15:07 |只看该作者
回复 22# springwind426


    感谢大家的回复,事情确实是这样的,主要是导出的问题。因为他没按正常方式导出,导致后期处理麻烦。
但是我这只能获得结果,呵呵。感谢了

论坛徽章:
0
24 [报告]
发表于 2011-06-22 17:10 |只看该作者
回复  红狐狸
yinyuemi 发表于 2011-06-22 02:52



   呵呵,还不是太看的懂你的代码(很希望能注释一下),不过我测试了下,至少发现逗号前无空格的情况,会出错

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
25 [报告]
发表于 2011-06-23 03:00 |只看该作者
回复 24# 红狐狸
  1.     echo '123, "11"1", "aaa, bbb, 1", "", 77, "12"2",' |\
  2.     awk '{$0=gensub(/("[^",]*)"([^",]*")/,"\\1 \\2","g",$0)  # 将所有【"11"1"】类似这样的格式中的【"】去掉,变成【"11 1"】,如果还有其他格式的话,你可以再想个办法
  3.         l=split($0,a,"\"")  # split产生数组a,l 是数组a的长度
  4.         for(i=1;i<=l;i++) $0=i==1?a[1]:$0"\""(!(i%2)?gensub(/, /," ","g",a[i]):a[i]) # 将【xxx, xxx, xx】中的逗号去掉,变成【xxx xxx xx】
  5.         }1'
  6.     123, "11 1", "aaa bbb 1", "", 77, "12 2",
复制代码

论坛徽章:
0
26 [报告]
发表于 2011-06-23 10:33 |只看该作者

  1. perl -ne 's/“$/”,/;s/,?(".*?"),/\n$1\n/g;s/^\n//;s/\n$//;@F=split /\n/;for($i=0;$i<$#F;$i++){$F[$i]=~s/,/|/g if not $F[$i]=~/"/};print join( "|",@F),"\n"' datafile

  2. 处理后,字段之间用|分隔
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP