看板 LinuxDev 關於我們 聯絡資訊
有一字串如下 (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://www.ptt.cc/bbs/LinuxDev/M.1396272840.A.968.html
mshockwave:我會用python, 先依照括弧切,再依照等號切 03/31 21:57
blackspace98:可是萬一只能用shell script的話呢? 03/31 22:03
Viller:用awk, 字串太長了, 假設他放在檔案tmp裡,用下列指令 03/31 22:24
Viller:cat tmp |awk -F'[()=]' '{print $3 " " $5}' 03/31 22:24
Viller:打錯了, 改成 cat tmp |awk -F'[()=]' '{print $3 " " $6}' 03/31 22:26
mshockwave:真的要用bash script的話可以用IFS 03/31 22:51
blackspace98:謝謝各位的回覆~另外,這用正規表示可以處理嗎? 03/31 23:33
blackspace98:-F'[()=]' F後面接的該怎麼解釋呢? 03/31 23:35
Viller:把'(' 或 ')' 或 '=' 當seperator 04/01 18:16
Viller:請看 http://ppt.cc/gV8E 04/01 18:17
yuskeb:sed 's/.*HOST=\([^)]*\)).*USER=\([^)]*\)).*/\1 \2/' 04/01 21:40
drm343:perl re 04/03 12:20