免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4203 | 回复: 4
打印 上一主题 下一主题

[文本处理] sed 同一行输出行号和内容 [复制链接]

论坛徽章:
26
CU大牛徽章
日期:2013-03-13 15:15:08水瓶座
日期:2014-08-31 19:44:01卯兔
日期:2014-09-05 08:48:33摩羯座
日期:2014-09-07 13:03:35子鼠
日期:2014-09-10 08:42:36白羊座
日期:2014-09-20 12:39:07丑牛
日期:2014-09-24 07:35:252015年亚洲杯之阿联酋
日期:2015-02-03 17:42:542015年亚洲杯之卡塔尔
日期:2015-02-11 13:13:022015年亚洲杯之约旦
日期:2015-03-03 15:10:522015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之卡塔尔
日期:2015-03-27 14:08:09
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-08-13 14:03 |只看该作者 |倒序浏览
正在看 sed&awk的sed部分。sed 的跟在地址后面的等号可以打印行号,但是是另起一行输出行号,有没有什么方法在同一行输出行号和和内容呢?
只能用sed。
ps:我觉得可能不行,等号并没有影响模式空间的内容,要求相当于同一行输出行号和模式空间的内容。估计不行吧?

论坛徽章:
0
2 [报告]
发表于 2013-08-13 14:10 |只看该作者
sed = filename | sed 'N;s/\n/\t/'

论坛徽章:
26
CU大牛徽章
日期:2013-03-13 15:15:08水瓶座
日期:2014-08-31 19:44:01卯兔
日期:2014-09-05 08:48:33摩羯座
日期:2014-09-07 13:03:35子鼠
日期:2014-09-10 08:42:36白羊座
日期:2014-09-20 12:39:07丑牛
日期:2014-09-24 07:35:252015年亚洲杯之阿联酋
日期:2015-02-03 17:42:542015年亚洲杯之卡塔尔
日期:2015-02-11 13:13:022015年亚洲杯之约旦
日期:2015-03-03 15:10:522015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之卡塔尔
日期:2015-03-27 14:08:09
3 [报告]
发表于 2013-08-13 14:31 |只看该作者
回复 2# zing840828


    这方法不错,用管道将问题转换为两行的合并,之后用N 将下一行也追加入pattern space,(N的作用 刚百度的,还没看到那里).
谢谢回答

论坛徽章:
93
2015年辞旧岁徽章
日期:2019-10-10 10:51:15CU大牛徽章
日期:2014-02-21 14:21:56CU十二周年纪念徽章
日期:2020-10-15 16:55:55CU大牛徽章
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大牛徽章
日期:2019-10-10 10:55:38季节之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季节之章:冬
日期:2019-10-10 10:57:17CU大牛徽章
日期:2014-02-21 14:22:52CU大牛徽章
日期:2014-03-13 10:40:30CU大牛徽章
日期:2014-02-21 14:23:15
4 [报告]
发表于 2013-08-14 09:28 |只看该作者
  1. [seesea@UC ~]$ cat addLineNum.sed
  2. 1 {
  3.     h
  4.     s/.*/1/
  5.     x
  6. }

  7. # 附加位置
  8. :AddLineNum
  9. G
  10. s/([^\n]*)\n([^\n]*)$/\2\t\1/
  11. x
  12. # 增加一
  13.     s/$/X/
  14.     :Inc
  15.     s/9X/X0/
  16.     s/8X/9/
  17.     s/7X/8/
  18.     s/6X/7/
  19.     s/5X/6/
  20.     s/4X/5/
  21.     s/3X/4/
  22.     s/2X/3/
  23.     s/1X/2/
  24.     s/0X/1/
  25.     s/^X/1/

  26.     /X/t Inc
  27. x
  28. [seesea@UC ~]$ seq 1 15 | sed -rf addLineNum.sed
  29. 1       1
  30. 2       2
  31. 3       3
  32. 4       4
  33. 5       5
  34. 6       6
  35. 7       7
  36. 8       8
  37. 9       9
  38. 10      10
  39. 11      11
  40. 12      12
  41. 13      13
  42. 14      14
  43. 15      15
复制代码

论坛徽章:
93
2015年辞旧岁徽章
日期:2019-10-10 10:51:15CU大牛徽章
日期:2014-02-21 14:21:56CU十二周年纪念徽章
日期:2020-10-15 16:55:55CU大牛徽章
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大牛徽章
日期:2019-10-10 10:55:38季节之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季节之章:冬
日期:2019-10-10 10:57:17CU大牛徽章
日期:2014-02-21 14:22:52CU大牛徽章
日期:2014-03-13 10:40:30CU大牛徽章
日期:2014-02-21 14:23:15
5 [报告]
发表于 2013-08-14 09:30 |只看该作者
作为练习还行,不然实际使用 cat -n 多方便啊。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP