免费注册 查看新帖 |

Chinaunix

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

如何将匹配结果赋值给变量? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-04-16 15:20 |只看该作者 |倒序浏览
在一个字符串$STR="the remote address is 192.168.1.1,the client address is 192.168.1.254"
如果匹配其中的IP地址,并赋值给变量$REMOTE,$CLIENT?
让$REMOTE=192.169.1.1   $CLIENT=192.168.1.254

论坛徽章:
0
2 [报告]
发表于 2007-04-16 15:30 |只看该作者

  1. 1    STR="the remote address is 192.168.1.1,the client address is 192.168.1.254"
  2. 2    eval `echo "$STR" | sed -r "s:^[^[:digit:]]*([[:digit:].]*)[^[:digit:]]*([[:digit:].]*).*$:ROMOTE=\1 \
  3. 3    CLIENT=\2:"`
  4. 4    echo $ROMOTE :: $CLIENT
复制代码

论坛徽章:
0
3 [报告]
发表于 2007-04-16 16:01 |只看该作者
真实强人!果然大师级!非常感谢!!!!

论坛徽章:
0
4 [报告]
发表于 2007-04-16 18:49 |只看该作者
Edengundam:
你好,我把你上边的答案研究了好半天,可不能灵活使用。每次稍有改动就会出错误,其实还是不明白你写的每个部分的意义,所以不得不再麻烦你一下!我现在的字符串是:
$STR="in:ether2 out:<l2tp-leihao>, src-mac 00:d0:f8:08:c0:af, proto TCP (ACK,PSH), 10.0.0.2:22->172.16.16.94:2500, len 1348"
我现在想取出的内容为:
$1=ether2
$2=<l2tp-leihao>
$3=10.0.0.2:22
$4=172.16.16.94:2500
不知道如何实现。谢谢!

论坛徽章:
0
5 [报告]
发表于 2007-04-16 18:56 |只看该作者
原帖由 jlboy 于 2007-4-16 18:49 发表
Edengundam:
你好,我把你上边的答案研究了好半天,可不能灵活使用。每次稍有改动就会出错误,其实还是不明白你写的每个部分的意义,所以不得不再麻烦你一下!我现在的字符串是:
$STR="in:ether2 out:< ...


如果你的记录格式是固定的, 我就帮你写.

论坛徽章:
0
6 [报告]
发表于 2007-04-16 19:23 |只看该作者
是固定的,是固定的。

论坛徽章:
0
7 [报告]
发表于 2007-04-16 19:56 |只看该作者
其实分开慢慢处理更好....

  1. STR='in:ether2 out:<l2tp-leihao>, src-mac 00:d0:f8:08:c0:af, proto TCP (ACK,PSH)
  2. , 10.0.0.2:22->172.16.16.94:2500, len 1348'

  3. eval `echo "$STR" | sed -r "s/^in:([^ ]*) out:([^,]*),[^,]*,[^,]*,[^,]*, ([0-9.:]*)->([0-9.:]*),.*$/IN='\1' \
  4. OUT='\2' \
  5. IN_IP='\3' \
  6. OUT_IP='\4'/"`

  7. echo $IN : $OUT : $IN_IP : $OUT_IP
复制代码

论坛徽章:
0
8 [报告]
发表于 2007-04-16 20:04 |只看该作者
非常感谢你,给你发了短消息。

论坛徽章:
0
9 [报告]
发表于 2007-04-16 20:12 |只看该作者
原帖由 jlboy 于 2007-4-16 20:04 发表
非常感谢你,给你发了短消息。



不要客气~~~这里的人都很热心

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
10 [报告]
发表于 2007-04-16 20:27 |只看该作者
用cut容易些,也比较好理解。

$REMOTE=`echo $STR |cut -d, -f1|cut -f5 -d' '`
$CLIENT=`echo $STR |cut -d, -f2|cut -f5 -d' '`

[ 本帖最后由 rdcwayx 于 2007-4-16 20:33 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP