2012-05-15 69 views
2

我有一個像輸出文件網址:瑞風用awk或桑達與捲曲

// 
data = { 
    'ip': '', 
    'server_ip': '', 
    'router_name': 'Banana Hammock', 
    'wan_domain': '', 
    'wan_gateway': '74.125.224.32', 
    'wan_gateway_get': '74.125.224.32', 
    'wan_get_domain': 'isp.example.com', 
    'wan_hostname': 'MumbaVille', 
    'wan_hwaddr': '00:00:00:00:00:00', 

我使用這個命令來獲得wan_gateway_get:

curl -k http://mumbarouter.com/get.asp?statits | awk '/wan_gateway_get/ {print $2}' 

,輸出:

'74.125.224.32', 
= 

我怎樣才能讓它輸出:

74.125.224.32 

謝謝,快樂媽媽!

回答

2

Make it easy on yourself ......導致分手所以很容易做:

curl -k http://mumbarouter.com/get.asp\?statits | 
    awk -F\' '/wan_gateway_get/ {print $4}' 
+0

明顯好和平原1。 – ShinTakezou

+0

@reinierpost,謝謝你,這也很有效 - 如何挑選優勝者?翻轉硬幣? – user1396770

+0

Shin說你贏了! ;-) – user1396770

1

以下

awk '/wan_gateway_get/ {match($2, "[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+"); print substr($2,RSTART,RLENGTH)}' 

是可能的方式之一。

+0

完美的工作!謝謝。 – user1396770

+0

我無法決定誰選誰作爲獲勝者?我們都可以翻轉硬幣。 – user1396770

+0

他的人更短,更清晰,聲譽更低,所以我會選擇他的;但是這當然取決於你 – ShinTakezou

0

TXR解決方案:自由格式解析實際語法。 (強制性閉括號加入到實施例的數據。)

@(define comment)//@[email protected]\[email protected](end) 
@(define ws)@(cases)@(comment)@(or)@/\s*/@(end)@(end) 
@(define id (id))@(ws)@{id /\w[\w\d_]+/}@(ws)@(end) 
@(define item (it))@(ws)'@{it /[^']+/}'@(ws)@(end) 
@(define braced_key_values (ithash))@\ 
    {@(coll)@(item key):@(item value)@(until)}@(end)}@\ 
    @(bind ithash @(progn '#H((:equal-based) ,*[mapcar list key value])))@\ 
@(end) 
@(freeform) 
@(id config)@(ws)[email protected](ws)@(braced_key_values config-hash) 
@(output) 
wan_gateway in configuration "@config" is @[config-hash "wan_gateway"] 
@(end) 

執行命令

$ txr data.txr data.txt 
wan_gateway in configuration "data" is 74.125.224.32