Chinaunix
标题:
如何打印出格式不统一行里包含大于1000的数字
[打印本页]
作者:
panwei789
时间:
2013-04-26 17:21
标题:
如何打印出格式不统一行里包含大于1000的数字
想提取文本里的每个端口号,但是每行格式不统一,现在的思路是提取每行里大于1000的数字,不知有没有办法实现?谢谢
test_001 = (address = (protocol = tcp) (host = 192.168.2.1) (port = 8911) (queuesize=32))
sid_list_test_001 =
(sid_list =
(sid_desc = (sdu=32767)
(sid_desc = (sdu=32767)
test_002 = (address = (protocol = tcp) (host = 192.168.2.1) (port=8912) (queuesize=32))
(protocol=tcp) (host=192.168.2.1) (port=2110) (RATE_LIMIT=40) (queuesize=12
作者:
yestreenstars
时间:
2013-04-26 17:52
awk -vRS='[^0-9]+' '$0>1000'
复制代码
作者:
panwei789
时间:
2013-04-26 17:55
好使!多谢了
作者:
yinwei2012
时间:
2013-04-26 19:50
本帖最后由 yinwei2012 于 2013-04-26 19:50 编辑
grep -E '[0-9]+' -o file | awk '$0>1000'
作者:
seesea2517
时间:
2013-04-27 11:08
本帖最后由 seesea2517 于 2013-04-27 11:09 编辑
回复
2#
yestreenstars
真厉害,最简单的办法了。
既然迟到了,只好来点不一样的:
[seesea@UC ~]$ cat file
test_001 = (address = (protocol = tcp) (host = 192.168.2.1) (port = 8911) (queuesize=32))
sid_list_test_001 =
(sid_list =
(sid_desc = (sdu=32767)
(sid_desc = (sdu=32767)
test_002 = (address = (protocol = tcp) (host = 192.168.2.1) (port=8912) (queuesize=32))
(protocol=tcp) (host=192.168.2.1) (port=2110) (RATE_LIMIT=40) (queuesize=
[seesea@UC ~]$ grep -Eo '[0-9]{4,}' file
8911
32767
32767
8912
2110
复制代码
作者:
yestreenstars
时间:
2013-04-27 11:21
回复
5#
seesea2517
貌似你的看起来更简单啊~
作者:
seesea2517
时间:
2013-04-27 11:34
回复
6#
yestreenstars
数数字符好像是少几个哈。
作者:
cao627
时间:
2013-04-27 11:53
[@]seesea2517[/@]д[1-9][0-9]{3,}
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2