免费注册 查看新帖 |

Chinaunix

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

[文本处理] 删除特定行以及替换特定行 [复制链接]

论坛徽章:
7
数据库技术版块每日发帖之星
日期:2015-08-08 06:20:00数据库技术版块每日发帖之星
日期:2015-08-29 06:20:00数据库技术版块每日发帖之星
日期:2015-08-29 06:20:00数据库技术版块每日发帖之星
日期:2015-09-18 06:20:00数据库技术版块每周发帖之星
日期:2015-11-06 19:56:51数据库技术版块每日发帖之星
日期:2016-01-22 06:20:00数据库技术版块每日发帖之星
日期:2016-02-05 06:20:00
21 [报告]
发表于 2013-01-22 16:24 |只看该作者
回复 20# jun277

这里是 if(xxx) else if(yyy)
xxx已经是true了,不会再去判断 yyy了,所有语言都是这样吧

   

论坛徽章:
0
22 [报告]
发表于 2013-01-22 16:36 |只看该作者
回复 21# asdf2110
恩,很久没用if elsif看混了,谢谢

   

论坛徽章:
0
23 [报告]
发表于 2013-01-22 16:55 |只看该作者
本帖最后由 jun277 于 2013-01-22 17:05 编辑

回复 21# asdf2110

论坛徽章:
6
摩羯座
日期:2013-08-24 10:43:10狮子座
日期:2013-08-25 10:27:06天秤座
日期:2013-09-11 20:28:44午马
日期:2014-09-28 16:06:0015-16赛季CBA联赛之八一
日期:2016-12-19 13:55:0515-16赛季CBA联赛之天津
日期:2016-12-20 14:01:23
24 [报告]
发表于 2013-01-22 20:43 |只看该作者
回复 2# asdf2110

awk '{if($0~/^A/){$0="B (9 9) (3 8)";line=NR+1;}}{if(line==NR)print "  (9 9) (2 0)"; else if($0!~/^X|Y/) print $0;}' c.txt

为什么将红色语句换成print "B (9 9) (3 8)" 不能将原文件中的相应行覆盖,而绿色语句确能将原文件中的行覆盖?



   

论坛徽章:
6
摩羯座
日期:2013-08-24 10:43:10狮子座
日期:2013-08-25 10:27:06天秤座
日期:2013-09-11 20:28:44午马
日期:2014-09-28 16:06:0015-16赛季CBA联赛之八一
日期:2016-12-19 13:55:0515-16赛季CBA联赛之天津
日期:2016-12-20 14:01:23
25 [报告]
发表于 2013-01-22 21:15 |只看该作者
本帖最后由 cao627 于 2013-01-22 21:16 编辑

awk '{if($0~/^A/){$0="B (9 9) (3 8)";line=NR+1;}}{if(line==NR)print "  (9 9) (2 0)"; else if($0!~/^X|Y/) print $0;}' c.txt
原来前面已经有讨论了。

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
26 [报告]
发表于 2013-01-22 21:53 |只看该作者
回复 10# minzyyl
  1. awk '/X/,/W/{next}1'  urfile
复制代码
这样?

论坛徽章:
6
摩羯座
日期:2013-08-24 10:43:10狮子座
日期:2013-08-25 10:27:06天秤座
日期:2013-09-11 20:28:44午马
日期:2014-09-28 16:06:0015-16赛季CBA联赛之八一
日期:2016-12-19 13:55:0515-16赛季CBA联赛之天津
日期:2016-12-20 14:01:23
27 [报告]
发表于 2013-01-22 22:15 |只看该作者
本帖最后由 cao627 于 2013-01-22 22:17 编辑

awk '{if($0~/^A/){$0="X (9 9) (3 8)";line=NR+1;}}{if(line==NR)print "  (9 9) (2 0)"; else if($0!~/^X|Y/) print $0;}' c.txt

如果是要实现:原有X开头的行不打印,将A开头的行替换为X开头打印。如何实现?

论坛徽章:
7
数据库技术版块每日发帖之星
日期:2015-08-08 06:20:00数据库技术版块每日发帖之星
日期:2015-08-29 06:20:00数据库技术版块每日发帖之星
日期:2015-08-29 06:20:00数据库技术版块每日发帖之星
日期:2015-09-18 06:20:00数据库技术版块每周发帖之星
日期:2015-11-06 19:56:51数据库技术版块每日发帖之星
日期:2016-01-22 06:20:00数据库技术版块每日发帖之星
日期:2016-02-05 06:20:00
28 [报告]
发表于 2013-01-22 22:28 |只看该作者
本帖最后由 asdf2110 于 2013-01-22 22:58 编辑

回复 26# blackold
这个好,学习了


   

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
29 [报告]
发表于 2013-01-23 06:38 |只看该作者
try:
sed
  1. sed '/X/,/W/d' urilfe
复制代码
这个也差不多吧。

论坛徽章:
1
2015亚冠之西悉尼流浪者
日期:2015-05-28 16:30:37
30 [报告]
发表于 2013-01-23 09:54 |只看该作者
:wink:学习了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP