作者blackspace98 (~我愛夏天~)
看板LinuxDev
標題[問題] 字串擷取
時間Mon Mar 31 21:33:57 2014
有一字串如下
(
HOST=
abc)(
USER=
v2.0class)(ADDRESS=(PROTOCOL=tcp)(
HOST=192.168.0.1)(PORT=12345)
我該怎麼才能擷取出來黃色的部分呢?
其中abc 有可能是__odbc__ 或 ABC-38EN 或 www.yahoo.com
等不固定或不規則的字串
這樣的話我該有什麼方法才做呢?
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.75.167.142
※ 文章網址: http://webptt.com/m.aspx?n=bbs/LinuxDev/M.1396272840.A.968.html
1F:→ mshockwave:我會用python, 先依照括弧切,再依照等號切 03/31 21:57
2F:→ blackspace98:可是萬一只能用shell script的話呢? 03/31 22:03
3F:→ Viller:用awk, 字串太長了, 假設他放在檔案tmp裡,用下列指令 03/31 22:24
4F:→ Viller:cat tmp |awk -F'[()=]' '{print $3 " " $5}' 03/31 22:24
5F:→ Viller:打錯了, 改成 cat tmp |awk -F'[()=]' '{print $3 " " $6}' 03/31 22:26
6F:→ mshockwave:真的要用bash script的話可以用IFS 03/31 22:51
7F:→ blackspace98:謝謝各位的回覆~另外,這用正規表示可以處理嗎? 03/31 23:33
8F:→ blackspace98:-F'[()=]' F後面接的該怎麼解釋呢? 03/31 23:35
9F:→ Viller:把'(' 或 ')' 或 '=' 當seperator 04/01 18:16
11F:推 yuskeb:sed 's/.*HOST=\([^)]*\)).*USER=\([^)]*\)).*/\1 \2/' 04/01 21:40
12F:→ drm343:perl re 04/03 12:20