免费注册 查看新帖 |

Chinaunix

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

[文本处理] 文本处理 [复制链接]

论坛徽章:
780
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
41 [报告]
发表于 2015-05-11 15:51 |只看该作者
回复 40# zhuifeng_wsd

sed版本比较低的话可能不支持//!d,我这边执行结果是对的.
   

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
42 [报告]
发表于 2015-05-11 15:59 |只看该作者
回复 40# zhuifeng_wsd


是的。这个是已知的bug,作者还没有修复。
https://github.com/aureliojargas/sedsed/issues/15

论坛徽章:
22
处女座
日期:2014-10-11 13:33:292015亚冠之塔什干火车头
日期:2015-07-20 19:59:042015亚冠之塔什干火车头
日期:2015-07-26 10:59:31程序设计版块每日发帖之星
日期:2015-08-05 06:20:00每日论坛发贴之星
日期:2015-08-05 06:20:00程序设计版块每日发帖之星
日期:2015-08-07 06:20:00每日论坛发贴之星
日期:2015-08-07 06:20:002015亚冠之阿尔纳斯尔
日期:2015-10-01 15:23:28白银圣斗士
日期:2015-12-07 17:17:06操作系统版块每日发帖之星
日期:2015-12-27 06:20:002015亚冠之广州富力
日期:2015-07-08 15:48:31程序设计版块每日发帖之星
日期:2015-06-11 22:20:00
43 [报告]
发表于 2015-05-11 16:25 |只看该作者
回复 19# klainogn
在这里,  “.*”是怎么匹配到\n,       以前我以为“.”匹配不到\r\n,请赐教。


   

论坛徽章:
5
天秤座
日期:2015-04-08 20:28:42辰龙
日期:2015-04-08 20:35:06寅虎
日期:2015-04-08 20:35:56子鼠
日期:2015-04-08 20:36:192015亚冠之迪拜阿赫利
日期:2015-05-13 16:52:25
44 [报告]
发表于 2015-05-12 09:18 |只看该作者
回复 34# Shell_HAT
  1. [root@localhost TEST]# ./sedsed -d --hide=hold '/PATSET/,/LINKSET/{//!d;n}' file.txt
  2. PATT:aa$
  3. COMM:/PATSET/,/LINKSET/ {
  4. PATT:aa$
  5. aa
  6. PATT:bb$
  7. COMM:/PATSET/,/LINKSET/ {
  8. PATT:bb$
  9. bb
  10. PATT:PATSET$
  11. COMM:/PATSET/,/LINKSET/ {
  12. COMM:// !d
  13. PATT:11$
  14. COMM:/PATSET/,/LINKSET/ {
  15. COMM:// !d
  16. PATT:22$
  17. COMM:/PATSET/,/LINKSET/ {
  18. COMM:// !d
  19. PATT:33$
  20. COMM:/PATSET/,/LINKSET/ {
  21. COMM:// !d
  22. PATT:44$
  23. COMM:/PATSET/,/LINKSET/ {
  24. COMM:// !d
  25. PATT:55$
  26. COMM:/PATSET/,/LINKSET/ {
  27. COMM:// !d
  28. PATT:66$
  29. COMM:/PATSET/,/LINKSET/ {
  30. COMM:// !d
  31. PATT:LINKSET$
  32. COMM:/PATSET/,/LINKSET/ {
  33. COMM:// !d
  34. PATT:LINKSET$
  35. COMM:n
  36. LINKSET
  37. PATT:cc$
  38. COMM:}
  39. PATT:cc$
  40. cc
  41. PATT:dd$
  42. COMM:/PATSET/,/LINKSET/ {
  43. PATT:dd$
  44. dd
  45. [root@localhost TEST]#
复制代码
这个处理结果解释正确吗?

论坛徽章:
1
申猴
日期:2014-12-25 16:27:10
45 [报告]
发表于 2015-05-12 09:25 |只看该作者
回复 44# ywmkelly


    我的执行结果也是这个,好像PATSET和11没有打印出来

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
46 [报告]
发表于 2015-05-12 09:59 |只看该作者
回复 44# ywmkelly


    不正确。因为sedsed对 // last matched pattern 的处理有bug,作者还没有解决这个问题。

论坛徽章:
2
2015年迎新春徽章
日期:2015-03-04 10:01:44程序设计版块每日发帖之星
日期:2015-06-28 22:20:00
47 [报告]
发表于 2015-05-12 11:49 |只看该作者
用p这个变量来控制打印,遇到PATSET 则打印本行和下一行,同时将P置为1,p=1的时候其他情况不打印,直到遇到LINKSET再将P置为0然后继续打印
BEGIN{
p=0
}
/PATSET/{
        print
        getline
        print
        p=1
}
!p{
print
}
/LINKSET/{
        print
        p=0
}

论坛徽章:
0
48 [报告]
发表于 2015-05-12 12:12 |只看该作者
本帖最后由 dengwei29 于 2015-05-12 12:16 编辑

回复 33# zhuifeng_wsd

{...}中的//表示上一个匹配模式,可以把命令改写下面这样。。。再用sedsed就能很容易理解了
  1. sed '/PATSET/,/LINKSET/{/PATSET\|LINKSET/!d;n}' file
复制代码

论坛徽章:
1
申猴
日期:2014-12-25 16:27:10
49 [报告]
发表于 2015-05-12 12:18 |只看该作者
回复 48# dengwei29


   终于明白了,非常感谢您的热心解答。

论坛徽章:
5
天秤座
日期:2015-04-08 20:28:42辰龙
日期:2015-04-08 20:35:06寅虎
日期:2015-04-08 20:35:56子鼠
日期:2015-04-08 20:36:192015亚冠之迪拜阿赫利
日期:2015-05-13 16:52:25
50 [报告]
发表于 2015-05-13 17:23 |只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP