免费注册 查看新帖 |

Chinaunix

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

[文本处理] 用sed在特定段落末行添加一行内容 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-08-19 10:00 |只看该作者 |倒序浏览
  1. #other
  2.         insmod /system/vendor/modules/other.ko

  3. #network module                                                               
  4.         insmod /system/vendor/modules/usbnet.ko                                
  5.         insmod /system/vendor/modules/asix.ko                                 
  6.         insmod /system/vendor/modules/qf9700.ko                                
  7.         insmod /system/vendor/modules/mcs7830.ko                              
  8.         insmod /system/vendor/modules/rtl8150.ko                              
  9.         insmod /system/vendor/modules/8192cu.ko                                
  10.                                                                               
  11. #rtk8723au usb bt module                                                      
  12.         insmod /system/vendor/modules/rtk_btusb.ko                             
  13.                                                                               
  14. # usb tether function                                                         
  15.         insmod /system/vendor/modules/cdc_ether.ko                             
  16.         insmod /system/vendor/modules/cdc_eem.ko                              
  17.         insmod /system/vendor/modules/cdc_subset.ko
复制代码
用sed在#network module这个段落最后添加一行“helloworld”!怎么做呢?

论坛徽章:
5
未羊
日期:2014-08-04 16:15:21天秤座
日期:2014-08-13 13:52:372015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:112015亚冠之浦和红钻
日期:2015-06-29 15:30:48
2 [报告]
发表于 2013-08-19 10:23 |只看该作者
  1. sed  '/#network module/,/^$/{/^$/s//\thello\n/}'
复制代码

论坛徽章:
1
天蝎座
日期:2013-08-22 15:14:44
3 [报告]
发表于 2013-08-19 10:50 |只看该作者
sed -nr ':a;N;$!ba;s/(.*#network module[^#]*ko)(.*#.*)/\1\n\thelloworld!\2/p'

论坛徽章:
50
15-16赛季CBA联赛之广夏
日期:2018-11-05 09:42:462015年亚冠纪念徽章
日期:2015-07-23 11:58:122015亚冠之广州富力
日期:2015-07-07 08:26:172015亚冠之塔什干棉农
日期:2015-06-29 09:08:072015年亚洲杯之伊朗
日期:2015-03-08 20:51:012015年迎新春徽章
日期:2015-03-04 09:58:11未羊
日期:2014-10-16 22:41:47处女座
日期:2014-10-16 15:33:33酉鸡
日期:2014-03-13 12:54:10巳蛇
日期:2014-03-10 14:39:052015亚冠之德黑兰石油
日期:2015-07-29 12:46:372015亚冠之德黑兰石油
日期:2015-08-07 12:54:11
4 [报告]
发表于 2013-08-19 11:12 |只看该作者
  1. sed '/#network module/{:b;N;/\n#/!bb;s/.*ko/&\n\thelloworld/}'
复制代码

论坛徽章:
0
5 [报告]
发表于 2013-08-19 11:47 |只看该作者
回复 2# dn833
怎么没有试出效果?
  1. root@kangear:~/work/Module# sed  '/#network module/,/^$/{/^$/s//\thello\n/}' tmp
  2. #other
  3.         insmod /system/vendor/modules/other.ko

  4. #network module                                                               
  5.         insmod /system/vendor/modules/usbnet.ko                                
  6.         insmod /system/vendor/modules/asix.ko                                 
  7.         insmod /system/vendor/modules/qf9700.ko                                
  8.         insmod /system/vendor/modules/mcs7830.ko                              
  9.         insmod /system/vendor/modules/rtl8150.ko                              
  10.         insmod /system/vendor/modules/8192cu.ko                                
  11.                                                                               
  12. #rtk8723au usb bt module                                                      
  13.         insmod /system/vendor/modules/rtk_btusb.ko                             
  14.                                                                               
  15. # usb tether function                                                         
  16.         insmod /system/vendor/modules/cdc_ether.ko                             
  17.         insmod /system/vendor/modules/cdc_eem.ko                              
  18.         insmod /system/vendor/modules/cdc_subset.ko
  19. root@kangear:~/work/Module#
复制代码

论坛徽章:
0
6 [报告]
发表于 2013-08-19 11:48 |只看该作者
回复 4# WilliBhamlll
能不能直接改写到文件中呢?不用再建立新的文件!{:3_182:}


   

论坛徽章:
0
7 [报告]
发表于 2013-08-19 11:50 |只看该作者
回复 4# WilliBhamlll
利用了*.ko这样似乎不太通用了就!能不能直接就是根据段落来判断的。


   

论坛徽章:
5
未羊
日期:2014-08-04 16:15:21天秤座
日期:2014-08-13 13:52:372015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:112015亚冠之浦和红钻
日期:2015-06-29 15:30:48
8 [报告]
发表于 2013-08-19 12:05 |只看该作者
kangear 发表于 2013-08-19 11:47
回复 2# dn833
怎么没有试出效果?


因为你那行不是空行,貌似有空格。。。。。。。

论坛徽章:
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
9 [报告]
发表于 2013-08-19 13:14 |只看该作者
回复 8# dn833


    有没有空格之类的就看lz自己的文件喽,不过做一个容错也不错,比如 /^$/ -> /^[ \t]*$/。

论坛徽章:
50
15-16赛季CBA联赛之广夏
日期:2018-11-05 09:42:462015年亚冠纪念徽章
日期:2015-07-23 11:58:122015亚冠之广州富力
日期:2015-07-07 08:26:172015亚冠之塔什干棉农
日期:2015-06-29 09:08:072015年亚洲杯之伊朗
日期:2015-03-08 20:51:012015年迎新春徽章
日期:2015-03-04 09:58:11未羊
日期:2014-10-16 22:41:47处女座
日期:2014-10-16 15:33:33酉鸡
日期:2014-03-13 12:54:10巳蛇
日期:2014-03-10 14:39:052015亚冠之德黑兰石油
日期:2015-07-29 12:46:372015亚冠之德黑兰石油
日期:2015-08-07 12:54:11
10 [报告]
发表于 2013-08-19 13:43 |只看该作者
回复 7# kangear

是的,那样写不太通用。改一改:
  1. sed '/#network module/{:b;N;/\n#/!bb;s/\([^ ]\+\)\s\+\(\n#.*\)/\1\n\thelloworld\n\2/}' file
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP