免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: platinum

取一个段落中关键字的问题(已解决) [复制链接]

论坛徽章:
0
发表于 2005-04-29 11:19 |显示全部楼层

取一个段落中关键字的问题(已解决)

对搂主说的有问题的纪录不是很清楚,好像是有一个纪录hardware对应行的纪录取不到有效数据.
写了一个

  1. awk 'BEGIN{i=1}{if ($1=="lease") IP=$2;if ($1=="hardware"&&$3!="") {print IP"-"substr($3,1,length
  2. ($3)-1)}}' yourfile
复制代码

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
发表于 2005-04-29 11:24 |显示全部楼层

取一个段落中关键字的问题(已解决)

nawk和awk不同的,偶的系统上只有gawk,莫有nawk

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
发表于 2005-04-29 11:39 |显示全部楼层

取一个段落中关键字的问题(已解决)

  1. cat file|grep ^[^#]|awk '{gsub(";","");if($0~/lease/)printf("%s ", $2);if($0~/hardware/) printf("%s\n", $3)}'|awk '{if(NF>=2)print $(NF-1),$NF}'
  2. 192.168.103.198 00:30:05:06:af:14
  3. 192.168.103.193 00:0c:6e:55:f7:dd
  4. 192.168.103.192 00:30:05:03:8a:08
  5. 192.168.102.199 00:0f:3d:21:8d:2a
  6. 192.168.102.199 00:0f:3d:21:8d:2a
复制代码


将楼上的楼上的。。。。。。修改了一次

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
发表于 2005-04-29 12:04 |显示全部楼层

取一个段落中关键字的问题(已解决)

来一个累点的

  1. grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' data>d1
  2. grep -o '[0-9a-f]\{2\}\:[0-9a-f]\{2\}\:[0-9a-f]\{2\}\:[0-9a-f]\{2\}\:[0-9a-f]\{2\}\:[0-9a-f]\{2\}' data>d2
  3. paste d1 d2 -d' '>d3;rm d1 d2
复制代码

论坛徽章:
0
发表于 2005-04-29 12:07 |显示全部楼层

取一个段落中关键字的问题(已解决)

烈火大哥,你又给俺捣乱,再弄点sleep不更好

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
发表于 2005-04-29 12:31 |显示全部楼层

取一个段落中关键字的问题(已解决)

[quote]原帖由 "platinum"]烈火大哥,你又给俺捣乱,再弄点sleep不更好 [/quote 发表:

sorry

论坛徽章:
0
发表于 2005-04-29 12:42 |显示全部楼层

取一个段落中关键字的问题(已解决)

[quote]原帖由 "platinum"]类似,只不过IP中间是空格,不是“-”[/quote 发表:


我在unix下的运行结果和烈火兄的运行结果是一样的!!!
#sh i

192.168.103.198 00:30:05:06:af:14
192.168.103.193 00:0c:6e:55:f7:dd
192.168.103.192 00:30:05:03:8a:08
192.168.102.199 00:0f:3d:21:8d:2a
192.168.102.199 00:0f:3d:21:8d:2a

awk '{
   gsub(/;/,""
   if($0~/lease/)
        printf("%s ", $2)
   if($0~/hardware/)
       printf("%s\n", $3)
}' filename

也许是gsub错,把""改为//试试。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
发表于 2005-04-29 13:30 |显示全部楼层

取一个段落中关键字的问题(已解决)


  1. awk '{gsub(/^ |;/,"")};/^lease/{printf $2" "};/^hard/{print $3}' file
复制代码

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
发表于 2005-04-29 14:04 |显示全部楼层

取一个段落中关键字的问题(已解决)

my try:

$ echo `cat dhcpd.leases` | tr '}' '\n' | grep '^ lease .*hardware'| sed 's/lease \([^ ]*\).*ethernet \([^ ]*\)\; .*/\1 \2/'

论坛徽章:
0
发表于 2005-04-29 16:02 |显示全部楼层

取一个段落中关键字的问题(已解决)

guangzongy
代码:

awk 'BEGIN{i=1}{if ($1=="lease" IP=$2;if ($1=="hardware"&&$3!="" {print IP"-"substr($3,1,length
($3)-1)}}' yourfile

执行结果如下
192.168.104.200-0
192.168.104.198-0
192.168.104.197-0
192.168.104.195-0
192.168.104.193-0
192.168.104.192-0
192.168.104.191-0
192.168.104.190-0
192.168.103.183-0
192.168.103.190-0
192.168.103.200-0
192.168.103.199-0
192.168.103.198-0
192.168.103.197-0
192.168.103.196-0
192.168.103.193-0
192.168.103.192-0
192.168.103.191-0
192.168.103.189-0
192.168.103.188-0
192.168.103.187-
192.168.103.186-0
192.168.103.185-0
192.168.103.184-0
192.168.103.182-0
192.168.102.200-0
192.168.102.199-0
192.168.102.198-0
192.168.102.197-0
192.168.102.196-0
192.168.102.195-0
192.168.101.200-0
192.168.101.197-0
192.168.101.196-0
192.168.101.195-0
192.168.101.194-0
192.168.101.193-0
192.168.101.192-0
192.168.101.102-0
192.168.103.195-0
192.168.103.194-0
192.168.103.181-0
192.168.103.181-0
192.168.102.197-0
192.168.102.197-0
192.168.102.197-0
192.168.102.197-0
192.168.102.197-0
192.168.102.197-0
192.168.102.197-0
192.168.102.197-0
192.168.102.197-0
192.168.102.197-0
192.168.102.197-0
192.168.102.197-0
192.168.103.199-0
192.168.102.197-0
192.168.102.197-0
192.168.102.197-0
192.168.102.197-0
192.168.103.199-0
192.168.102.197-0
192.168.102.197-0





begincwcw
我在unix下的运行结果和烈火兄的运行结果是一样的!!!  
#sh i

192.168.103.198 00:30:05:06:af:14
192.168.103.193 00:0c:6e:55:f7:dd
192.168.103.192 00:30:05:03:8a:08
192.168.102.199 00:0f:3d:21:8d:2a
192.168.102.199 00:0f:3d:21:8d:2a

awk '{
  gsub(/;/,""
  if($0~/lease/)
       printf("%s ", $2)
  if($0~/hardware/)
      printf("%s\n", $3)
}' filename

也许是gsub错,把""改为//试试。

改成//或者不改,结果一样,如下
not store The This 192.168.104.200 00:10:5c:f6:6c:10
192.168.104.198 00:0f:ea:b4:cb:82
192.168.104.197 00:0f:ea:b4:bd:e6
192.168.104.195 00:0f:ea:b3:82:fb
192.168.104.193 00:0f:ea:b2:ac:8b
192.168.104.192 00:0f:ea:b4:cb:32
192.168.104.191 00:04:23:8c:a4:6f
192.168.104.190 08:00:46:b7:dd:f8
192.168.103.183 00:0a:e4:2e:37:e9
192.168.103.190 00:00:00:00:00:00
192.168.103.200 00:00:00:00:00:00
192.168.103.199 00:0d:87:4e:4a:ac
192.168.103.198 00:30:05:06:af:14
192.168.103.197 00:0a:e4:2e:37:e9
192.168.103.196 00:0f:3d:48:d8:75
192.168.103.193 00:0c:6e:55:f7:dd
192.168.103.192 00:30:05:03:8a:08
192.168.103.191 00:11:5b:22:8f:ae
192.168.103.189 00:11:09:6e:b4:22
192.168.103.188 00:e0:4c:e5:06:6c
192.168.103.187 50:78:4c:48:a8:a1
192.168.103.186 00:11:2f:d4:84:6e
192.168.103.185 00:e0:81:25:22:d2
192.168.103.184 00:e0:4c:53:9d:f5
192.168.103.182 00:0f:ea:b2:ab:98
192.168.102.200 00:e0:4c:e4:ff:26
192.168.102.199 00:0f:3d:21:8d:2a
192.168.102.198 00:c0:f6:b0:b4:55
192.168.102.197 00:0f:3d:21:8d:30
192.168.102.196 00:0f:3d:83:1b:2c
192.168.102.195 00:11:11:b4:4b:82
192.168.101.200 00:0e:35:b5:0c:e0
192.168.101.197 00:0a:e6:68:cd:4e
192.168.101.196 00:e0:4c:46:14:2e
192.168.101.195 00:e0:4c:57:bd:61
192.168.101.194 00:0f:1f:b0:95:42
192.168.101.193 00:c0:f6:b0:b4:5c
192.168.101.192 00:11:11:b4:4c:06
192.168.101.102 00:e0:4c:46:14:2e
192.168.103.195 00:11:2f:51:bc:ce
192.168.103.195 192.168.103.194 00:11:2f:51:bc:ce
192.168.103.194 192.168.103.181 00:11:2f:51:bc:ce
192.168.103.181 00:11:2f:51:bc:ce
192.168.102.197 00:0f:3d:21:8d:30
192.168.102.197 00:0f:3d:21:8d:30
192.168.103.195 192.168.103.194 192.168.102.197 00:0f:3d:21:8d:30
192.168.102.197 00:0f:3d:21:8d:30
192.168.102.197 00:0f:3d:21:8d:30
192.168.102.197 00:0f:3d:21:8d:30
192.168.102.197 00:0f:3d:21:8d:30
192.168.102.197 00:0f:3d:21:8d:30
192.168.102.197 00:0f:3d:21:8d:30
192.168.102.197 00:0f:3d:21:8d:30
192.168.102.197 00:0f:3d:21:8d:30
192.168.102.197 00:0f:3d:21:8d:30
192.168.103.199 00:0d:87:4e:4a:ac
192.168.102.197 00:0f:3d:21:8d:30
192.168.102.197 00:0f:3d:21:8d:30
192.168.102.197 00:0f:3d:21:8d:30
192.168.102.197 00:0f:3d:21:8d:30
192.168.103.199 00:0d:87:4e:4a:ac
192.168.102.197 00:0f:3d:21:8d:30
192.168.102.197 00:0f:3d:21:8d:30
192.168.102.197 00:0f:3d:21:8d:30
192.168.102.197 00:0f:3d:21:8d:30





寂寞烈火
代码:

awk '{gsub(/^ |;/,""};/^lease/{printf $2" "};/^hard/{print $3}' file

结果如下
192.168.104.200 192.168.104.198 192.168.104.197 192.168.104.195 192.168.104.193 192.168.104.192 192.168.104.191 192.168.104.190 192.168.103.183 192.168.103.190 192.168.103.200 192.168.103.199 192.168.103.198 192.168.103.197 192.168.103.196 192.168.103.193 192.168.103.192 192.168.103.191 192.168.103.189 192.168.103.188 192.168.103.187 192.168.103.186 192.168.103.185 192.168.103.184 192.168.103.182 192.168.102.200 192.168.102.199 192.168.102.198 192.168.102.197 192.168.102.196 192.168.102.195 192.168.101.200 192.168.101.197 192.168.101.196 192.168.101.195 192.168.101.194 192.168.101.193 192.168.101.192 192.168.101.102 192.168.103.195 192.168.103.195 192.168.103.194 192.168.103.194 192.168.103.181 192.168.103.181 192.168.102.197 192.168.102.197 192.168.103.195 192.168.103.194 192.168.102.197 192.168.102.197 192.168.102.197 192.168.102.197 192.168.102.197 192.168.102.197 192.168.102.197 192.168.102.197 192.168.102.197 192.168.102.197 192.168.103.199 192.168.102.197 192.168.102.197 192.168.102.197 192.168.102.197 192.168.103.199 192.168.102.197 192.168.102.197 192.168.102.197 192.168.102.197 192.168.102.197





網中人
my try:

$ echo `cat dhcpd.leases` | tr '}' '\n' | grep '^ lease .*hardware'| sed 's/lease \([^ ]*\).*ethernet \([^ ]*\)\; .*/\1 \2/'

结果如下
-bash: $: command not found

修改为
cat dhcpd.leases | tr '}' '\n' | grep '^ lease .*hardware'| sed 's/lease \([^ ]*\).*ethernet \([^ ]*\)\; .*/\1 \2/'
后,结果如下……
(无输出)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP