免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 4729 | 回复: 29

[文本处理] 求删除特定字符片区的方法 [复制链接]

论坛徽章:
1
金牛座
日期:2014-05-29 15:55:47
发表于 2014-05-21 16:39 |显示全部楼层
内容如下:

  1. lease 10.108.215.134 {
  2.   starts 2 2014/05/20 13:46:14;
  3.   ends 3 2014/05/21 13:46:14;
  4.   cltt 2 2014/05/20 13:46:14;
  5.   binding state active;
  6.   next binding state free;
  7.   rewind binding state free;
  8.   hardware ethernet 6c:e8:73:ad:32:db;
  9.   uid "\001l\350s\2552\333";
  10.   option agent.remote-id 0:23:ed:22:69:a2;
  11.   client-hostname "WR740N";
  12. }
  13. lease 10.108.215.140 {
  14.   starts 2 2014/05/20 13:46:21;
  15.   ends 3 2014/05/21 13:46:21;
  16.   cltt 2 2014/05/20 13:46:21;
  17.   binding state active;
  18.   next binding state free;
  19.   rewind binding state free;
  20.   hardware ethernet 20:dc:e6:3c:7f:4b;
  21.   uid "\001 \334\346<\177K";
  22.   option agent.remote-id a4:7a:a4:73:6e:1e;
  23.   client-hostname "WR740N";
  24. }
  25. lease 10.108.215.148 {
  26.   starts 2 2014/05/20 15:12:33;
  27.   ends 3 2014/05/21 15:12:33;
  28.   cltt 2 2014/05/20 15:12:33;
  29.   binding state active;
  30.   next binding state free;
  31.   rewind binding state free;
  32.   hardware ethernet 40:16:9f:7c:74:e7;
  33.   uid "\001@\026\237|t\347";
  34.   option agent.remote-id 0:25:f1:fd:90:7a;
  35.   client-hostname "NatRouter";
  36. }
复制代码
我想指定删除lease区域内含有20:dc:e6:3c:7f:4b的整个lease {}区域,有没有方法能实现?sed/perl/awk等方法都可以。

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
发表于 2014-05-21 16:56 |显示全部楼层
本帖最后由 关阴月飞 于 2014-05-21 16:58 编辑

回复 1# iceblood
  1. awk  '!/20:dc:e6:3c:7f:4b/&&NF{print RS$0}'  RS=lease  urfile
复制代码

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
发表于 2014-05-21 16:58 |显示全部楼层
  1. awk -vRS='lease' 'NR>1&&!/20:dc:e6:3c:7f:4b/{printf RS$0}'
复制代码

论坛徽章:
1
金牛座
日期:2014-05-29 15:55:47
发表于 2014-05-21 17:10 |显示全部楼层
本帖最后由 iceblood 于 2014-05-21 17:11 编辑

删除前:

  1. > cat tt.txt
  2. # The format of this file is documented in the dhcpd.leases(5) manual page.
  3. # This lease file was written by isc-dhcp-4.2.4

  4. lease 10.108.215.157 {
  5.   starts 2 2014/02/11 04:06:44;
  6.   ends 3 2014/02/12 02:01:38;
  7.   tstp 3 2014/02/12 02:01:38;
  8.   cltt 2 2014/02/11 04:06:44;
  9.   binding state free;
  10.   hardware ethernet 6c:e8:73:ad:56:17;
  11.   uid "\001l\350s\255V\027";
  12. }
  13. lease 10.108.215.155 {
  14.   starts 3 2014/02/12 04:15:06;
  15.   ends 3 2014/02/12 07:21:35;
  16.   tstp 3 2014/02/12 07:21:35;
  17.   cltt 3 2014/02/12 04:15:06;
  18.   binding state free;
  19.   hardware ethernet 10:78:d2:cc:d3:9d;
  20.   uid "\001\020x\322\314\323\235";
  21. }
  22. lease 10.108.215.151 {
  23.   starts 2 2014/02/18 07:32:30;
  24.   ends 2 2014/02/18 08:25:55;
  25.   tstp 2 2014/02/18 08:25:55;
  26.   cltt 2 2014/02/18 07:32:30;
  27.   binding state free;
  28.   hardware ethernet 20:dc:e6:3c:75:4d;
  29.   uid "\001 \334\346<uM";
  30. }
  31. lease 10.108.215.153 {
  32.   starts 2 2014/02/18 09:00:22;
  33.   ends 3 2014/02/19 09:00:22;
  34.   tstp 3 2014/02/19 09:00:22;
  35.   cltt 2 2014/02/18 09:00:22;
  36.   binding state free;
  37.   hardware ethernet 18:03:73:97:8c:82;
  38.   uid "\001\030\003s\227\214\202";
  39. }
  40. lease 10.108.215.154 {
  41.   starts 4 2014/02/20 07:34:35;
  42.   ends 5 2014/02/21 02:00:32;
  43.   tstp 5 2014/02/21 02:00:32;
  44.   cltt 4 2014/02/20 07:34:35;
  45.   binding state free;
  46.   hardware ethernet 6c:e8:73:ad:32:51;
  47.   uid "\001l\350s\2552Q";
  48. }
  49. >
复制代码
删除后:

  1. > sh tt.sh
  2. leasee is documented in the dhcpd.leaseeases(5) manualease page.
  3. # This leaseease fileasee was written by isc-dhcp-4.2.4

  4. leaseease 10.108.215.157 {
  5.   starts 2 2014/02/11 04:06:44;
  6.   ends 3 2014/02/12 02:01:38;
  7.   tstp 3 2014/02/12 02:01:38;
  8.   cleasett 2 2014/02/11 04:06:44;
  9.   binding state free;
  10.   hardware ethernet 6c:e8:73:ad:56:17;
  11.   uid "\001lease\350s\255V\027";
  12. }
  13. leaseease 10.108.215.155 {
  14.   starts 3 2014/02/12 04:15:06;
  15.   ends 3 2014/02/12 07:21:35;
  16.   tstp 3 2014/02/12 07:21:35;
  17.   cleasett 3 2014/02/12 04:15:06;
  18.   binding state free;
  19.   hardware ethernet 10:78:d2:cc:d3:9d;
  20.   uid "\001\020x\322\314\323\235";
  21. }
  22. leaseease 10.108.215.151 {
  23.   starts 2 2014/02/18 07:32:30;
  24.   ends 2 2014/02/18 08:25:55;
  25.   tstp 2 2014/02/18 08:25:55;
  26.   cleaseease 10.108.215.153 {
  27.   starts 2 2014/02/18 09:00:22;
  28.   ends 3 2014/02/19 09:00:22;
  29.   tstp 3 2014/02/19 09:00:22;
  30.   cleasett 2 2014/02/18 09:00:22;
  31.   binding state free;
  32.   hardware ethernet 18:03:73:97:8c:82;
  33.   uid "\001\030\003s\227\214\202";
  34. }
  35. leaseease 10.108.215.154 {
  36.   starts 4 2014/02/20 07:34:35;
  37.   ends 5 2014/02/21 02:00:32;
  38.   tstp 5 2014/02/21 02:00:32;
  39.   cleasett 4 2014/02/20 07:34:35;
  40.   binding state free;
  41.   hardware ethernet 6c:e8:73:ad:32:51;
  42.   uid "\001lease\350s\2552Q";
  43. }
  44. >
复制代码
失败了……
注意看23-35行,以及leases等重复字母……
使用语法:

  1. > cat tt.sh
  2. awk -vRS='lease' 'NR>1&&!/20:dc:e6:3c:75:4d/{printf RS$0}' tt.txt
  3. >

复制代码

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-08-24 06:20:00综合交流区版块每日发帖之星
日期:2015-10-14 06:20:00IT运维版块每日发帖之星
日期:2015-10-25 06:20:00IT运维版块每日发帖之星
日期:2015-11-06 06:20:00IT运维版块每日发帖之星
日期:2015-12-10 06:20:00平安夜徽章
日期:2015-12-26 00:06:302016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-04-15 06:20:00IT运维版块每日发帖之星
日期:2016-05-21 06:20:00综合交流区版块每日发帖之星
日期:2016-08-16 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-14 06:20:00
发表于 2014-05-21 17:27 |显示全部楼层
我说是个月经贴没人反对吧?
http://bbs.chinaunix.net/thread-4136159-1-1.html
看明白就能做这个了。月经中的月经。

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-08-24 06:20:00综合交流区版块每日发帖之星
日期:2015-10-14 06:20:00IT运维版块每日发帖之星
日期:2015-10-25 06:20:00IT运维版块每日发帖之星
日期:2015-11-06 06:20:00IT运维版块每日发帖之星
日期:2015-12-10 06:20:00平安夜徽章
日期:2015-12-26 00:06:302016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-04-15 06:20:00IT运维版块每日发帖之星
日期:2016-05-21 06:20:00综合交流区版块每日发帖之星
日期:2016-08-16 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-14 06:20:00
发表于 2014-05-21 17:31 |显示全部楼层
无非把s换成d删除,换一下关键词。

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-08-24 06:20:00综合交流区版块每日发帖之星
日期:2015-10-14 06:20:00IT运维版块每日发帖之星
日期:2015-10-25 06:20:00IT运维版块每日发帖之星
日期:2015-11-06 06:20:00IT运维版块每日发帖之星
日期:2015-12-10 06:20:00平安夜徽章
日期:2015-12-26 00:06:302016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-04-15 06:20:00IT运维版块每日发帖之星
日期:2016-05-21 06:20:00综合交流区版块每日发帖之星
日期:2016-08-16 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-14 06:20:00
发表于 2014-05-21 17:48 |显示全部楼层
$ cat a
{
a
b
c
}
{
m
n
d
}
{
xxxx
yyyy
xxxx}

$  sed '/{/{:a;N;/}/!ba;/n/d}' a
{
a
b
c
}
{
xxxx
yyyy
xxxx}

[/code]

删除n的{},跟你这个没任何区别,把n换成你的关键词就应该可以了。

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-08-24 06:20:00综合交流区版块每日发帖之星
日期:2015-10-14 06:20:00IT运维版块每日发帖之星
日期:2015-10-25 06:20:00IT运维版块每日发帖之星
日期:2015-11-06 06:20:00IT运维版块每日发帖之星
日期:2015-12-10 06:20:00平安夜徽章
日期:2015-12-26 00:06:302016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-04-15 06:20:00IT运维版块每日发帖之星
日期:2016-05-21 06:20:00综合交流区版块每日发帖之星
日期:2016-08-16 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-14 06:20:00
发表于 2014-05-21 17:49 |显示全部楼层
提前说一下,要原文改,记得-i,省得再问。

论坛徽章:
0
发表于 2014-05-21 18:06 |显示全部楼层
目测楼主是AIX的nawk。

论坛徽章:
1
金牛座
日期:2014-05-29 15:55:47
发表于 2014-05-21 18:20 |显示全部楼层
用户名注册后不能更改 发表于 2014-05-21 18:06
目测楼主是AIX的nawk。

FreeBSD,哈哈,不过眼力也很厉害了,一眼看出不是Linux。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP