[问题] 字串撷取

楼主: blackspace98 (~我爱夏天~)   2014-03-31 21:33:57
有一字串如下
(HOST=abc)(USER=v2.0class)(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.1)(PORT=12345)
我该怎么才能撷取出来黄色的部分呢?
其中abc 有可能是__odbc__ 或 ABC-38EN 或 www.yahoo.com
等不固定或不规则的字串
这样的话我该有什么方法才做呢?
谢谢
作者: mshockwave (夏克维夫)   2014-03-31 21:57:00
我会用python, 先依照括号切,再依照等号切
楼主: blackspace98 (~我爱夏天~)   2014-03-31 22:03:00
可是万一只能用shell script的话呢?
作者: Viller   2014-03-31 22:24:00
用awk, 字串太长了, 假设他放在档案tmp里,用下列指令cat tmp |awk -F'[()=]' '{print $3 " " $5}'打错了, 改成 cat tmp |awk -F'[()=]' '{print $3 " " $6}'
作者: mshockwave (夏克维夫)   2014-03-31 22:51:00
真的要用bash script的话可以用IFS
楼主: blackspace98 (~我爱夏天~)   2014-03-31 23:33:00
谢谢各位的回复~另外,这用正规表示可以处理吗?-F'[()=]' F后面接的该怎么解释呢?
作者: Viller   2014-04-01 18:16:00
把'(' 或 ')' 或 '=' 当seperator请看 " target="_blank" rel="nofollow">
作者: yuskeb (我想做一个好人)   2014-04-01 21:40:00
sed 's/.*HOST=\([^)]*\)).*USER=\([^)]*\)).*/\1 \2/'
作者: drm343 (一卡)   2014-04-03 12:20:00
perl re

Links booklink

Contact Us: admin [ a t ] ucptt.com