免费注册 查看新帖 |

Chinaunix

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

[文本处理] 获取字符串中的mac地址 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-05-19 17:14 |只看该作者 |倒序浏览
本帖最后由 ziyema 于 2016-05-19 17:15 编辑

小弟用ps aux |grep qemu |grep -v grep 命令后获取到虚拟机进程如下:

qemu     29109  5.4  1.3 3370700 1747280 ?     Sl    2014 60742:30 /usr/libexec/qemu-kvm -name kvm-0000007e -S -M rhel6.4.0 -enable-kvm -m 2048 -smp 1,sockets=1,cores=1,threads=1 -uuid f251dea1-c166-4b22-8379-463d8b29a41c -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/kvm-0000007e.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive file=/home/instances/kvm-0000007e/disk,if=none,id=drive-virtio-disk0,format=qcow2,cache=none -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -netdev tap,fd=27,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=fa:16:3e:41:50:f4,bus=pci.0,addr=0x3 -chardev file,id=charserial0,path=/home/instances/kvm-0000007e/console.log -device isa-serial,chardev=charserial0,id=serial0 -chardev pty,id=charserial1 -device isa-serial,chardev=charserial1,id=serial1 -device usb-tablet,id=input0 -vnc 0.0.0.0:8 -k en-us -vga cirrus -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5

qemu     29641  7.9  3.2 5751092 4308680 ?     Sl    2014 89692:47 /usr/libexec/qemu-kvm -name kvm-00000079 -S -M rhel6.4.0 -enable-kvm -m 4096 -smp 2,sockets=2,cores=1,threads=1 -uuid 54fd3d21-2551-4444-8f65-836d684b7635 -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/kvm-00000079.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive file=/home/instances/kvm-00000079/disk,if=none,id=drive-virtio-disk0,format=qcow2,cache=none -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -netdev tap,fd=27,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=fa:16:3e:3c:68:0f,bus=pci.0,addr=0x3 -chardev file,id=charserial0,path=/home/instances/kvm-00000079/console.log -device isa-serial,chardev=charserial0,id=serial0 -chardev pty,id=charserial1 -device isa-serial,chardev=charserial1,id=serial1 -device usb-tablet,id=input0 -vnc 0.0.0.0:5 -k en-us -vga cirrus -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5
qemu     34928  5.5  1.1 5050996 1526428 ?     Sl    2015 38472:45 /usr/libexec/qemu-kvm -name kvm-000000d1 -S -M rhel6.4.0 -enable-kvm -m 4096 -smp 2,sockets=2,cores=1,threads=1 -uuid 717b1a48-4021-452e-a28c-8c8b4877e9d4 -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/kvm-000000d1.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive file=/home/instances/kvm-000000d1/disk,if=none,id=drive-virtio-disk0,format=qcow2,cache=none -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -netdev tap,fd=36,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=fa:16:3e:45:e1:8f,bus=pci.0,addr=0x3 -chardev file,id=charserial0,path=/home/instances/kvm-000000d1/console.log -device isa-serial,chardev=charserial0,id=serial0 -chardev pty,id=charserial1 -device isa-serial,chardev=charserial1,id=serial1 -device usb-tablet,id=input0 -vnc 0.0.0.0:2 -k en-us -vga cirrus -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5

想输出如下:
f251dea1-c166-4b22-8379-463d8b29a41c   fa:16:3e:41:50:f4
54fd3d21-2551-4444-8f65-836d684b7635   fa:16:3e:3c:68:0f
717b1a48-4021-452e-a28c-8c8b4877e9d4   fa:16:3e:45:e1:8f

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
2 [报告]
发表于 2016-05-19 17:44 |只看该作者
回复 1# ziyema
  1. perl -nle 'BEGIN{$,=" "}{next if(m/\A\s*\z/);print m/(?<=-uuid )(\S+)|(?<=mac=)([^,]+)/g}' f
复制代码
f251dea1-c166-4b22-8379-463d8b29a41c   fa:16:3e:41:50:f4
54fd3d21-2551-4444-8f65-836d684b7635   fa:16:3e:3c:68:0f
717b1a48-4021-452e-a28c-8c8b4877e9d4   fa:16:3e:45:e1:8f


   

评分

参与人数 1信誉积分 +10 收起 理由
ziyema + 10 很给力!

查看全部评分

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
3 [报告]
发表于 2016-05-19 17:52 |只看该作者
  1. perl -nle 'BEGIN{$"=" "}{print "@a" if(@a=m/(?<=-uuid )(\S+)|(?<=mac=)([^,]+)/g)}' f
复制代码
f251dea1-c166-4b22-8379-463d8b29a41c   fa:16:3e:41:50:f4
54fd3d21-2551-4444-8f65-836d684b7635   fa:16:3e:3c:68:0f
717b1a48-4021-452e-a28c-8c8b4877e9d4   fa:16:3e:45:e1:8f

论坛徽章:
54
2015亚冠之德黑兰石油
日期:2015-07-07 13:00:1615-16赛季CBA联赛之深圳
日期:2016-03-31 09:03:5415-16赛季CBA联赛之辽宁
日期:2016-05-09 20:38:15程序设计版块每日发帖之星
日期:2016-05-12 06:20:0015-16赛季CBA联赛之四川
日期:2016-05-13 15:19:4715-16赛季CBA联赛之福建
日期:2016-05-15 20:24:34每日论坛发贴之星
日期:2016-05-16 06:20:0015-16赛季CBA联赛之吉林
日期:2016-05-26 11:49:4715-16赛季CBA联赛之广东
日期:2016-05-26 13:49:18极客徽章
日期:2016-12-07 14:05:2315-16赛季CBA联赛之广夏
日期:2016-12-20 17:33:532017金鸡报晓
日期:2017-01-10 15:19:56
4 [报告]
发表于 2016-05-19 18:03 |只看该作者
  1. awk -vRS='[ =,]' '/uuid/{getline;s=$0}/mac/{getline;print s,$0}' file
  2. f251dea1-c166-4b22-8379-463d8b29a41c fa:16:3e:41:50:f4
  3. 54fd3d21-2551-4444-8f65-836d684b7635 fa:16:3e:3c:68:0f
  4. 717b1a48-4021-452e-a28c-8c8b4877e9d4 fa:16:3e:45:e1:8f
复制代码

论坛徽章:
769
金牛座
日期: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
5 [报告]
发表于 2016-05-19 18:03 |只看该作者
回复 1# ziyema

  1. grep -Po "(?<=uuid |mac=)[\w-:]*" i|xargs -n2
  2. f251dea1-c166-4b22-8379-463d8b29a41c fa:16:3e:41:50:f4
  3. 54fd3d21-2551-4444-8f65-836d684b7635 fa:16:3e:3c:68:0f
  4. 717b1a48-4021-452e-a28c-8c8b4877e9d4 fa:16:3e:45:e1:8f
复制代码

评分

参与人数 1信誉积分 +10 收起 理由
sunzhiguolu + 10 您这个 Look Behind 用的太漂亮了!

查看全部评分

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
6 [报告]
发表于 2016-05-19 18:14 |只看该作者
回复 5# Herowinter
请教下大神, grep -P 的 Look Behind 进化了吗, 比 perl 的都好.

   

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
7 [报告]
发表于 2016-05-19 18:15 |只看该作者
回复 1# ziyema

$ perl -lane '{if(m/-uuid ([^ ]+).*,mac=([^,]+),/){print "$1 $2"}}' FILE

$ awk 'match($0,"-uuid ([^ ]+).*,mac=([^,]+),",a){print a[1],a[2]}' FILE

f251dea1-c166-4b22-8379-463d8b29a41c
fa:16:3e:41:50:f4
54fd3d21-2551-4444-8f65-836d684b7635 fa:16:3e:3c:68:0f
717b1a48-4021-452e-a28c-8c8b4877e9d4 fa:16:3e:45:e1:8f

   

论坛徽章:
769
金牛座
日期: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
8 [报告]
发表于 2016-05-19 18:23 |只看该作者
回复 6# sunzhiguolu

-P就是perl正则, 应该一样的呀,
我perl不熟, 不是很清楚.

   

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
9 [报告]
发表于 2016-05-19 18:27 |只看该作者
回复 8# Herowinter
同样的用法, 在 perl 中就不行了,
perl -nle 'BEGIN{$"=" "}{print "@a" if(@a=m/(?<=-uuid |mac=)([-\w:]+)/g)}' f
Variable length lookbehind not implemented in regex m/(?<=-uuid |mac=)([-\w:]+)/ at -e line 1.


   

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
10 [报告]
发表于 2016-05-19 18:29 |只看该作者
回复 7# jason680
大神, grep -P 的 Look Behind 是不是在 perl 的基础上某些方面增强了, 还请您指点下, 谢谢...

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP