[問題] 字串擷取

作者: 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請看 http://ppt.cc/gV8E
作者: 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