忘记密码   免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
12
最近访问板块 发新帖
楼主: fwtsayou

[文本处理] awk替换文件中单引号内容超过50个字符 [复制链接]

论坛徽章:
13
程序设计版块每日发帖之星
日期:2016-05-03 06:20:0015-16赛季CBA联赛之青岛
日期:2018-06-08 13:45:2815-16赛季CBA联赛之同曦
日期:2018-06-04 19:42:2015-16赛季CBA联赛之山东
日期:2018-05-30 12:44:59CU十四周年纪念徽章
日期:2018-05-15 11:36:3815-16赛季CBA联赛之广东
日期:2018-05-14 09:52:4215-16赛季CBA联赛之深圳
日期:2018-05-04 21:53:0815-16赛季CBA联赛之辽宁
日期:2018-04-02 14:03:3915-16赛季CBA联赛之北京
日期:2018-03-23 15:24:07CU十四周年纪念徽章
日期:2018-03-16 13:09:532016科比退役纪念章
日期:2018-01-19 12:45:5915-16赛季CBA联赛之同曦
日期:2017-09-11 14:39:48
发表于 2018-05-31 18:25 |显示全部楼层
本帖最后由 wh7211 于 2018-05-31 18:33 编辑

回复 1# fwtsayou


  1. cat 1
  2. ','1','1',NULL,'200000152000779',NULL,0,1,0,2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0
  3. ,0,0,0,0,NULL,0,0,0,0,0,NULL,0,'',8000.00,500.00,'通过本项目的实施,测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试。\n',0.00,0.00,0.00,0.00,0.00,100.00,300.00,0.00,0.00
  4. ,0.00,'/','1、主要研究内容:\n测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试。\n2、拟解决的关键技术问题:\n(
  5. 1)载波聚合智能终端载波聚合硬件设计与实现问题;\n(2)测试测试测试测试测试测试测试测试测试测试测试;\n
  6. 。\n','',NULL,400.00,0.00,0,0,0,to_date('2017-01-01 00:00
  7. :00','yyyy-MM-dd HH24:MI:SS'),to_date('2018-12-31 00:00:00','yyyy-MM-dd HH24:MI:SS'),to_date('2007-03-11 00:00:00','yyyy-MM-dd HH24:MI:SS'),to_date('2008-03-28 00:00:0
  8. 0','yyyy-MM-dd HH24:MI:SS'),to_date('2008-06-05 00:00:00','yyyy-MM-dd HH24:MI:SS'),100.00,'一次性拨款','壹佰万元整',NULL,

  9. awk 'BEGIN{RS="###";ORS=""}{b=split($0,a,",");for(i=1;i<=b;i++){if(length(a[i])>52){gsub("[^\\\\n\012]+","",a[i])};c=c?c","a[i]:a[i]}}END{print c}' 1
  10. ','1','1',NULL,'200000152000779',NULL,0,1,0,2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0
  11. ,0,0,0,0,NULL,0,0,0,0,0,NULL,0,'',8000.00,500.00,\n,0.00,0.00,0.00,0.00,0.00,100.00,300.00,0.00,0.00
  12. ,0.00,'/',\n\n\n
  13. \n\n
  14. \n,'',NULL,400.00,0.00,0,0,0,to_date('2017-01-01 00:00
  15. :00','yyyy-MM-dd HH24:MI:SS'),to_date('2018-12-31 00:00:00','yyyy-MM-dd HH24:MI:SS'),to_date('2007-03-11 00:00:00','yyyy-MM-dd HH24:MI:SS'),to_date('2008-03-28 00:00:0
  16. 0','yyyy-MM-dd HH24:MI:SS'),to_date('2008-06-05 00:00:00','yyyy-MM-dd HH24:MI:SS'),100.00,'一次性拨款','壹佰万元整',NULL,
复制代码

论坛徽章:
0
发表于 2018-06-01 11:10 |显示全部楼层
回复 10# christmas1102

这个倒是可以了,但是有个问题,如果我的单引号中''出现逗号,那么他会把逗号直接的截出来,就会有问题了;所以我的意思是,有没有办法匹配  ,' 和 ',之间的内容,因为这样子,他肯定是匹配到了;然后把中间的内容去掉。

论坛徽章:
13
程序设计版块每日发帖之星
日期:2016-05-03 06:20:0015-16赛季CBA联赛之青岛
日期:2018-06-08 13:45:2815-16赛季CBA联赛之同曦
日期:2018-06-04 19:42:2015-16赛季CBA联赛之山东
日期:2018-05-30 12:44:59CU十四周年纪念徽章
日期:2018-05-15 11:36:3815-16赛季CBA联赛之广东
日期:2018-05-14 09:52:4215-16赛季CBA联赛之深圳
日期:2018-05-04 21:53:0815-16赛季CBA联赛之辽宁
日期:2018-04-02 14:03:3915-16赛季CBA联赛之北京
日期:2018-03-23 15:24:07CU十四周年纪念徽章
日期:2018-03-16 13:09:532016科比退役纪念章
日期:2018-01-19 12:45:5915-16赛季CBA联赛之同曦
日期:2017-09-11 14:39:48
发表于 2018-06-01 11:59 |显示全部楼层
回复 8# fwtsayou

替换后的结果到底是什么样子的,保留空行还是删掉空行?源文件中的字符串『\n』是变成空行,还是保留字符串原样打印『\n』,还是删掉?

论坛徽章:
0
发表于 2018-06-02 00:20 |显示全部楼层
回复 13# wh7211

其实要的效果就是
比如我的数据是:

1,1,1,1,11,1,'AAAAAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBBBB \n
CCCCCCC,CCCC,CCCC',NULL,222,3333

那么我希望达到的效果是:
1,1,1,1,11,1,'',NULL,222,3333


而且我是整个文件,有很多这种内容,希望全部替换掉;
就是说在 ,'  和 ', 之间的内容,同时长度超过50的就全部替换成空的就行

论坛徽章:
13
程序设计版块每日发帖之星
日期:2016-05-03 06:20:0015-16赛季CBA联赛之青岛
日期:2018-06-08 13:45:2815-16赛季CBA联赛之同曦
日期:2018-06-04 19:42:2015-16赛季CBA联赛之山东
日期:2018-05-30 12:44:59CU十四周年纪念徽章
日期:2018-05-15 11:36:3815-16赛季CBA联赛之广东
日期:2018-05-14 09:52:4215-16赛季CBA联赛之深圳
日期:2018-05-04 21:53:0815-16赛季CBA联赛之辽宁
日期:2018-04-02 14:03:3915-16赛季CBA联赛之北京
日期:2018-03-23 15:24:07CU十四周年纪念徽章
日期:2018-03-16 13:09:532016科比退役纪念章
日期:2018-01-19 12:45:5915-16赛季CBA联赛之同曦
日期:2017-09-11 14:39:48
发表于 2018-06-04 19:39 |显示全部楼层
回复 14# fwtsayou


  1. cat 1
  2. 1,1,1,1,11,1,'AAAAAAAAAAAAAAAAAAA
  3. BBBBBBBBBBBBBBBBBBBB \n
  4. CCCCCCC,CCCC,CCCC',NULL,222,3333

  5. ','1','1',NULL,'200000152000779',NULL,0,1,0,2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0
  6. ,0,0,0,0,NULL,0,0,0,0,0,NULL,0,'',8000.00,500.00,'通过本项目的实施,测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试。\n',0.00,0.00,0.00,0.00,0.00,100.00,300.00,0.00,0.00
  7. ,0.00,'/','1、主要研究内容:\n测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试。\n2、拟解决的关键技术问题:\n(
  8. 1)载波聚合智能终端载波聚合硬件设计与实现问题;\n(2)测试测试测试测试测试测试测试测试测试测试测试;\n
  9. 。\n','',NULL,400.00,0.00,0,0,0,to_date('2017-01-01 00:00
  10. :00','yyyy-MM-dd HH24:MI:SS'),to_date('2018-12-31 00:00:00','yyyy-MM-dd HH24:MI:SS'),to_date('2007-03-11 00:00:00','yyyy-MM-dd HH24:MI:SS'),to_date('2008-03-28 00:00:0
  11. 0','yyyy-MM-dd HH24:MI:SS'),to_date('2008-06-05 00:00:00','yyyy-MM-dd HH24:MI:SS'),100.00,'一次性拨款','壹佰万元整',NULL,

  12. awk 'BEGIN{RS="###";a="\012";b="\054";c="\047"}{gsub(""a"","");gsub(""b""c"[^"c"]{50,}"c""b"",""b""c""c""b"")}1' 1
  13. 1,1,1,1,11,1,'',NULL,222,3333','1','1',NULL,'200000152000779',NULL,0,1,0,2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,NULL,0,0,0,0,0,NULL,0,'',8000.00,500.00,'',0.00,0.00,0.00,0.00,0.00,100.00,300.00,0.00,0.00,0.00,'/','','',NULL,400.00,0.00,0,0,0,to_date('2017-01-01 00:00:00','yyyy-MM-dd HH24:MI:SS'),to_date('2018-12-31 00:00:00','yyyy-MM-dd HH24:MI:SS'),to_date('2007-03-11 00:00:00','yyyy-MM-dd HH24:MI:SS'),to_date('2008-03-28 00:00:00','yyyy-MM-dd HH24:MI:SS'),to_date('2008-06-05 00:00:00','yyyy-MM-dd HH24:MI:SS'),100.00,'一次性拨款','壹佰万元整',NULL,
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:wangnan@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP